Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

putanje do fajlova

[es] :: C/C++ programiranje :: C/C++ za početnike :: putanje do fajlova

[ Pregleda: 3557 | Odgovora: 18 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

bventil
desp

Član broj: 67391
Poruke: 50
*.smin.sezampro.yu.

Sajt: www.geocities.com/bope999


+1 Profil

icon putanje do fajlova17.11.2006. u 01:18 - pre 212 meseci
Zdravo!
Imama problem.
Koristim baze u BCB-u. Sve se nalaze u maticnom direktoriju programa. Kada exe verziju programa odnesem na neki drugi comp, i snimim u dir drugog naziva, program naravno ne radi, jer se sve nalazi na drugim putanjama. Kako se to resava?



[Ovu poruku je menjao bventil dana 17.11.2006. u 02:44 GMT+1]
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.3dnet.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: putanje do fajlova17.11.2006. u 06:42 - pre 212 meseci
Citat:

Koristim baze u BCB-u.

Koristiš li ADO ili BDE za pristup bazama?
Koju bazu koristiš?

Citat:

Kada exe verziju programa odnesem na neki drugi comp, i snimim u dir drugog naziva,
program naravno ne radi, jer se sve nalazi na drugim putanjama. Kako se to resava?

Svaki EXE traži još nekoliko DLL i BPL fajlova koje moraš imati na odredišnom računaru
da bi sve to proradilo. AKo koristiš BDE, treba cela instalacija BDE-a.

Postoje programi koji mogu da vide koji ti DLL i BPL fajlovi nedostaju:
Dependency Walker

Postoje programi za pravljenje instalacija (klasične instalacije koje si video 100 puta),
koji kulturno postavljaju nedostajuće datoteke, ali ti moraš reći šta ti treba.

Postoji i način da tvoj BCB EXE bude nešto veći, ai da ima sve DLL i BPL fajlove već
uključene u EXE:

SKINI: Project/Options/Linker/Use Dunamic RTL
SKINI: Project/Options/Packages/Build with runtime packages

Ali ako koristiš BDE, onda će ti bez obzira trebati zasebna instalacija BDE.
 
Odgovor na temu

bventil
desp

Član broj: 67391
Poruke: 50
*.smin.sezampro.yu.

Sajt: www.geocities.com/bope999


+1 Profil

icon Re: putanje do fajlova17.11.2006. u 18:19 - pre 212 meseci
Hvala na odgovoru, mislio sam da imam samo 1 problem, a ocigledno ih imam malo vise :)
Ali, mene interesuje i sledece. Ako u programu koristim neku sliku, ili bilo koji drugi fajl, moram da upisem putanju do tog fajla, cak i ako se on nalazi u istom dir gde i program.
Ako program premestim na drugu putanju, na drugom compu, on nece moci da nadje taj fajl(sliku). Sta onda upisati umesto"c:\\....\\" za putanju do neke slike ili fajla?

A sto se tice baza, koristim BDE, i tek sad shvatam u koji sam shit uleteo. Hoce li znaci Express za BCB biti dovoljan da resi problem koji si naveo(tu da mu navedem da ukljuci i BDE)?
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
89.216.236.*

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: putanje do fajlova17.11.2006. u 20:37 - pre 212 meseci
Citat:

Ako u programu koristim neku sliku, ili bilo koji drugi fajl, moram da upisem putanju do tog fajla,
cak i ako se on nalazi u istom dir gde i program.
Ako program premestim na drugu putanju, na drugom compu, on nece moci da nadje taj fajl(sliku).
Sta onda upisati umesto"c:\\....\\" za putanju do neke slike ili fajla?

Ako se fajl nalazi u folderu gde i exe, onda mozes da kazes nesto ovako:

Code:

Image1->Picture->LoadFromFile( ExtractFilePath( ParamStr(0) ) + "slika.jpg" );

ili:

Image1->Picture->LoadFromFile( ExtractFilePath( Application->ExeName ) + "slika.jpg" );

Dakle, tachna putanja se odredjuje dinamicki.

Citat:

A sto se tice baza, koristim BDE, i tek sad shvatam u koji sam shit uleteo.

Mani se BDE. Koristi ADO (samo me nemoj odmah pitati kako, jer cu momentalno da izgubim svu energiju :).

Citat:

Hoce li znaci Express za BCB biti dovoljan da resi problem koji si naveo(tu da mu navedem da ukljuci i BDE)?

Mislim da nece moci. Koliko se secam, lepo je pisalo da taj BDE treba samo chekirati, ali to je greska
u Help fajlu, ili drugim recima "Što je babi milo, to joj se i snilo".

Neko je nekad napravio poprilicno dobru instalaciju za BDE-a, i to kao fajl: bdeinfosetup.exe
Skini ga na primer ovde: http://www.href.com/pub/sw/index.htm

Ako hoces da se bakces sa instalacionim procedurama, pa da taj BDE bude u sklopu instalacije programa
a ne kao zasebna, pogledaj:

Inno Setup
http://www.jrsoftware.org/isinfo.php

... imaju resenje za sve. Imas i prevod za srpski jezik.

Uh...

 
Odgovor na temu

bventil
desp

Član broj: 67391
Poruke: 50
*.smin.sezampro.yu.

Sajt: www.geocities.com/bope999


+1 Profil

icon Re: putanje do fajlova17.11.2006. u 23:56 - pre 212 meseci

Hvala ti puno!
Necu te vise daviti. Dovoljno je i ovo sto si mi pomogao.
Za ADO, cu naci vec nesto. Imam "Borland-C++-Builder-5-Developer's-Guide" i mislim da i tamo ima dosta oko toga.
Once again, Thanks!
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
89.216.236.*

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: putanje do fajlova18.11.2006. u 08:06 - pre 212 meseci
Fora je u tome da prestanes da koroistis nekek komponente, a u zamenu uzmes druge:

TDatabase ->TADOCOnnection
TTable ->TADOTable
TQuery ->TADOQuery

itd...

Vizuelne komnponente ostaju iste: TDBGrid, TDBEdit, TDBNavigator, TDBCheckBox, ...

Takodje, komponennte za vezu ostaju iste: TDataSource, ...
 
Odgovor na temu

DjoleReject
Djordje Knezevic
Zvezdara

Član broj: 85258
Poruke: 309
*.dynamic.sbb.co.yu.



+1 Profil

icon Re: putanje do fajlova26.11.2006. u 15:57 - pre 211 meseci
Nema veze sa Borlandom, ali ima sa naslovom, pa ako nemate nista protiv, pitao bih i ja nesto:

Kada kazes ofstream(ime_fajla), napravis fajl u istom folderu u kome je i exe.
Kako izvesti da taj fajl napravis u jednom folderu ispod? Znaci, ja imam u folderu u kome je exe drugi folder (npr. fajlovi) i zelim da se svi fajlovi prave bas tamo. A ne zelim da unapred znam gde je korisniku exe.
Moja naivna ideja je bila da ispred imena fajla (koje je char*, a ne string) dodam slova koja cine ime foldera i znak '\'. Ovo nije radilo, naravno. Zna li neko kako bi radilo?
De si Deda...
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.216.237.0

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: putanje do fajlova26.11.2006. u 19:48 - pre 211 meseci
Savet je da u praksi (sem za domaće zadatke) nikad ne polaziš
od pretpostavke da će fajl upisan bez cele putanje biti kreiran tamo
gde je EXE. Da ne ulazim sada u detalje...

Za početak, uvek možeš da znaš gde je tvoj EXE:

--- BCB ---
ParamStr( 0 );
Application->ExeName;

--- CPP ---
argv[0];

--- API ---
TCHAR buffer[ MAX_PATH+1 ] = {0};
::GetModuleFileName( NULL, buffer, MAX_PATH );
// buffer sadrži celu putanju+exe

Dalje, shodno biblioteci koju koristiš, treba da odvojiš EXE deo od Putanje,
i da na Putanju dodaš donju crtu plus fajl sa ekstenzijom:

Pogledaj na prime ovde:
http://forums.devx.com/archive/index.php/t-86043.html
 
Odgovor na temu

DjoleReject
Djordje Knezevic
Zvezdara

Član broj: 85258
Poruke: 309
*.dynamic.sbb.co.yu.



+1 Profil

icon Re: putanje do fajlova26.11.2006. u 20:21 - pre 211 meseci
Ne, ono sto oni tamo rade ne pomaze. Meni treba da ne znam gde je covek kome dajem program smestio isti. Samo mi je zgodnije da se undo fajlovi prave u posebnom folderu (koji bi bio u folderu gde je exe i dll-ovi). Nije da je smak sveta ako ostane i ovako...
Inace, ako ti nije smaranje, mozes li mi objasniti to da nema sigurice kad samo kazes ime fajla? Ja na primer imam Klasu FileManager koja na svaki potez u editoru nivoa upisuje stanje u novi fajl. Oni se zovu "undo01.txt", "undo02.txt" i tako dalje... Ono sto bih zeleo je da budu stekovani u podfolderu "fajlovi", samo zbog preglednosti.
Sto se tice tvoje pomoci -
- ne radim sa Borlandom, pa prvi primer nije za mene.
- ne kontam sta si zeleo reci sa argv[0]. Da li da pre dizanja programa posaljem argument main-u. Kako bih i tada znao gde je on?
- Pokusacu sa API-jem, a tebi svakako hvala!
De si Deda...
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.3dnet.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: putanje do fajlova27.11.2006. u 11:32 - pre 211 meseci
Citat:

Meni treba da ne znam gde je covek kome dajem program smestio isti.

Naravno. To je stvar izbora korisnika. Ti samo hoćeš da UNDO fajlove smeštaš u:
X:\TAMO_GDE_JE_KORISNIK_ODABRAO\UNDOFOLDER\undo01.txt
Odavde se vidi da je korisnik odabrao da mu EXE bude u TAMO_GDE_JE_KORISNIK_ODABRAO,
a ti si definisao folder UNDOFOLDER u koji ćeš stavljati undo fajlove.

Citat:

Samo mi je zgodnije da se undo fajlovi prave u posebnom folderu

O tome i govori gornji slučaj.

Citat:

Inace, ako ti nije smaranje, mozes li mi objasniti to da nema sigurice kad samo kazes ime fajla?

Postoji API: GetCurrentDirectory() koji govori gde je trenutni folder u koji se vrši snimanje.
Taj folder se može podesiti sa: SetCurrentDirectory().

Po defaultu, radni folder je tamo gde je EXE, ali ne mora da znači. Na primer, ako program
pokrećeš preko prečice (ikone) koju si napravio, a nisi podesio Working Folder, može se
dogoditi da ti radni folder više nije gde je EXE, nego negde sasvim drugde.

Takođe, mnogi Save/Open/Print/Browse dijalozi znaju da "razdese" radni folder, pa ti sve
lepo radi do prvog sledećeg Save As koji si uradio van radnog foldera.

Citat:

- ne kontam sta si zeleo reci sa argv[0].

int main( int argc, char*argv[] )
{
printf ( "%s", argv[0] );
return 0;
}
... ce ti dati putnju+exe gde program instaliran (pokrenut), dakle, na primer:
c:\Program Files\Di recnik\di.exe

To znači, da je argv[0] automatski "napunjen" sa celom putanjom, što ti je
polazni podatak da dalje ručno formiraš odgocarajuću UNDO folder.

U konkretnom slučaju, treba:

1) iz putanje
c:\Program Files\Di recnik\di.exe
... skloniti EXE deo, tako da ostane:
c:\Program Files\Di recnik\

2) dodati UNDO FOLDER:
c:\Program Files\Di recnik\MOJ_UNDO_FOLDER\

3) dodati UNDO fajl
c:\Program Files\Di recnik\MOJ_UNDO_FOLDER\Undo1.txt

4) proslediti ovu CELU putanju sa fajlom u ofstream, ili gde već prosledjuješ.


Citat:

- Pokusacu sa API-jem, a tebi svakako hvala!

API koji samti dao, radi istu stvar kao i argv[0], dajke, u nizu "buffer" čuva
celu putanju sa exe-om.

Kako ćeš da skloniš naziv fajla i dodaš svoj UNDO folder i dodaš UNDO fajl, to
je već tvoj problem. Ili ćeš ručno ili uz pomoć neke biblioteke (funkcije) koja
to radi za tebe.
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.3dnet.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: putanje do fajlova27.11.2006. u 13:40 - pre 211 meseci
Evo ti jedan primer kako da odrediš UNDO folder i UNDO fajl.
(generalno, bolje je koristiti gotove biblioteke i/ili klase za sve
vezano za fajlove, ali ovo tek da shvatis sta ti govorim)

Code:
   
// ovo je buffer gde cemo:
// 1. smestiti folder + fajl gde je EXE pokrenut: c:\Program Files\Di recnik\di.exe
// 2. kasnije napraviti UNDO folder + UNDO fajl: c:\Program Files\Di recnik\UNDO\Undo1.txt
char buffer[ MAX_PATH+1 ] = {0};

// za pocetak uzmi celu putanju+fajl gde je pokrenut program
::GetModuleFileName( NULL, buffer, MAX_PATH );

// test: c:\Program Files\Di recnik\di.exe
ShowMessage( buffer );

// ukloni naziv fajla iz putanje
int i = strlen ( buffer ) - 1;
while ( buffer[ i ] != '\\' )
   buffer[i--] = '\0';

// test: c:\Program Files\Di recnik\
ShowMessage( buffer );

// dodaj UNDO 
strcat( buffer, "UNDO\\" );

// test: c:\Program Files\Di recnik\UNDO
ShowMessage( buffer );

// dodaj Undo1.txt
strcat( buffer, "Undo1.txt" );

// test: c:\Program Files\Di recnik\UNDO\Undo1.txt
ShowMessage( buffer );
 
Odgovor na temu

DjoleReject
Djordje Knezevic
Zvezdara

Član broj: 85258
Poruke: 309
*.dynamic.sbb.co.yu.



+1 Profil

icon Re: putanje do fajlova27.11.2006. u 14:56 - pre 211 meseci
Hvala ti X k`o bratu!!! Ne da si pomogao, nego si ultra-pomogao!

Ja bih umro, a ne bih znao da putanja dolazi u main po defaultu. Inace, ne mogu da koristim bas dijaloge kako ja hocu, jer ne otvaram prozor, nego je sve u HGE-u (engine za 2d igre). Jedino sto sada moram je ponovo listanje knjiga o WinAPI-ju, a to i ne volem bas previse :( Sta da se radi, nekako mi se uvek desi da zaglavim radeci stvari koje me smaraju...

Hvala jos jednom!
De si Deda...
 
Odgovor na temu

DjoleReject
Djordje Knezevic
Zvezdara

Član broj: 85258
Poruke: 309
*.dynamic.sbb.co.yu.



+1 Profil

icon Re: putanje do fajlova27.11.2006. u 14:59 - pre 211 meseci
Nego kad vec smaram... Ovo sa stringovima je najelegantnije moguce, ali fstream mi kaze da ne moze konvertovati string u char* (koji je valjda obavezan). Koja je po tvom misljenju najbolja stvar za ovu konverziju?
De si Deda...
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.216.237.0

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: putanje do fajlova27.11.2006. u 15:36 - pre 211 meseci
Ne znam na sta mislis, ali dovoljno je da na kraju koda koga sam ti dao
stavis:
Code:

// onaj kod odozgo
// ...
ofstream outfile ( buffer );
// ...
outfile.close();
// ...

 
Odgovor na temu

pcaca
Aleksandar
Makedonija

Član broj: 5333
Poruke: 92
62.162.190.*



Profil

icon Re: putanje do fajlova28.11.2006. u 19:38 - pre 211 meseci
Citat:
DjoleReject: Nego kad vec smaram... Ovo sa stringovima je najelegantnije moguce, ali fstream mi kaze da ne moze konvertovati string u char* (koji je valjda obavezan). Koja je po tvom misljenju najbolja stvar za ovu konverziju?

Verovatno ti treba c_str() member klase string. Ova funkcija vraca C-style string (char*).
Code:
string path; //putanja do file
ofstream undofile(path.c_str());
 
Odgovor na temu

DjoleReject
Djordje Knezevic
Zvezdara

Član broj: 85258
Poruke: 309
*.ptt.yu.



+1 Profil

icon Re: putanje do fajlova29.11.2006. u 10:49 - pre 211 meseci
Momci - puno hvala!

Ja sam potpuno shokiran cinjenicom da mi ni jedan od profana nikada nije pomenuo argv[], a bar dve godine sam proveo cukajuci konzolne programe (i vrlo cesto koristeci i ove argumente za main). Hocu reci da ako ne znam ovo u Winu, to je moj propust, ali za argv[] su me iznervirali :)))

X Files - sori za cimanje...
De si Deda...
 
Odgovor na temu

DjoleReject
Djordje Knezevic
Zvezdara

Član broj: 85258
Poruke: 309
*.dynamic.sbb.co.yu.



+1 Profil

icon Re: putanje do fajlova06.03.2007. u 15:02 - pre 208 meseci
U ovoj temi sam poprilicno otvorio oci po nekim pitajnima, ali sada moram da je "dignem iz mrtvih"...
Naime, savet koji je X dao me je naterao da u svim projektima koristim ovakav pristup trazenju fajlova. Sve funkcionise odlicno, ali se pojavio problem u trenutku prelaska sa VS 2003 na VS 2005. 2005-ica prijavljuje gresku u delu koda ::GetModuleFileName( NULL, buffer, MAX_PATH );

Fora je sto ja ni kad sam prvi put dobio ovaj komad koda nisam bas najbolje razumeo kako on radi, ali sada sam u corsokaku zbog toga sto ne znam kako da ga promenim. Bio bih zahvalan na nekom resenju... Takodje, bilo bi veoma dobrodoslo i da neko teorijski "potkuje" neznalicu poput mene i objasni zasto je do problema uopste doslo (kao i sta ustvari znaci kad napises :: na pocetku reda - da li je to poziv win funkcija, lici na nekakvo pozivanje static funkcija...???).

Hvala unapred.
De si Deda...
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.dynamic.sbb.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: putanje do fajlova06.03.2007. u 15:51 - pre 208 meseci
Citat:

2005-ica prijavljuje gresku u delu koda ::GetModuleFileName( NULL, buffer, MAX_PATH );

Šta se prijavljuje kao greška?
Citat:

[...] i sta ustvari znaci kad napises :: na pocetku reda - da li je to poziv win funkcija,
lici na nekakvo pozivanje static funkcija...???).

Te dve tačke imaju smisla kod BCB programa da se naglasi da se radi o API pozivu, a ne o nekoj
lokalno definisanoj funkciji, kakvih je BCB prepun. Možeš da eliminišeš.

Pošto pominješ VS, predlažem da usvojiš njihove konvencije za tipove i makro definicije. Probaj kod
da modifikuješ na sledeći način:
Code:

TCHAR buffer[ _MAX_PATH+1 ] ; 
GetModuleFileName( NULL , buffer , sizeof( buffer ) ) ;

... a ako koristiš "double-byte" karaktere:
Code:

GetModuleFileName( NULL , buffer , sizeof( buffer ) / sizeof( TCHAR ) ) ;


Mada je najbolje da nađeš neku gotovu klasu za manipulisanje nazivima fajlova, foldera, putanja i sl.

 
Odgovor na temu

DjoleReject
Djordje Knezevic
Zvezdara

Član broj: 85258
Poruke: 309
*.dynamic.sbb.co.yu.



+1 Profil

icon Re: putanje do fajlova11.03.2007. u 22:07 - pre 208 meseci
Hvala puno, X.
Inace, kako se koriste te "gotove klase"? kao dll ili inkludujes heder? Ima li neko, kojim slucajem link ka necemu takvom (a da je provereno - inace bih nesto i sam izguglao, treba mi da znam iz prve ruke da radi).
De si Deda...
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: putanje do fajlova

[ Pregleda: 3557 | Odgovora: 18 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.