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

Datoteke

[es] :: C/C++ programiranje :: Datoteke

[ Pregleda: 3306 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Djuki
Djurdjevac Ivan
Pancevo

Član broj: 56
Poruke: 171
*.panet.co.yu

Jabber: djuki_mag@elitesecurity.org
ICQ: 66867882


Profil

icon Datoteke06.02.2003. u 11:36 - pre 229 meseci
Kako da se u Windowsu kreira tekstualna ili binarna datoteka?
Znam da to radi

FILE *datoteka;
datoteka= fopen("c\fajl.txt", "w");

Negde gresim ali ne znam gde. Probao sam i da napravim datoteku pa da je otvorim u rezimu citanja ali mi ni to nije uspelo. Znaci hocu da mi program kreira datoteku koju posle mogu da vidim na disku i da kasnije u istu ubacujem podatke ili ih iscitavam.
Hvala na odgovoru unapred.
 
Odgovor na temu

Milan Aksic

Član broj: 412
Poruke: 1053
*.beotel.net



Profil

icon Re: Datoteke06.02.2003. u 12:01 - pre 229 meseci
Mozes, koristeci i std funkcije. Win32 API I/O funkcije ne prave razliku, tako da to na neki nacin omogucuje i vecu slobodu (pored dodatnih mogucnosti).
Najprostiji primer:
Code:

HANDLE file;
DWORD numRead;
char filename;

...
/* otvaras ili pravis novi fajl. Otvaras vec postojeci npr. na sledeci nacin,
   gde je filename u stvari niz karaktera, koji opisuje putanju do fajla */
fileh = CreateFile(filename, GENERIC_READ, 0, 0, OPEN_EXISTING, 0, 0);

...
/* sledeca linija cita 100 bajta. Broj 'stvarno' procitanih bajta se nalazi 
    u numRead. */
success = ReadFile(fileh, buffer, 100, &numRead, 0);

...
/* kada handle ka fajlu vise nije potreban */
CloseHandle(fileh);

Ovo je naravno najprostiji nacin upotrebe, bez overlapped I/O ili Security Attributes.
Ako je potrebno vise puta pisati i citati iz fajla, predlazem ti da mapiras taj fajl u memoriji.
Za sve ostale informacije (tacno objasnjenje parametara ovih funkcija) pogledaj u MSDN-u.

Pozdrav.
 
Odgovor na temu

Djuki
Djurdjevac Ivan
Pancevo

Član broj: 56
Poruke: 171
*.panet.co.yu

Jabber: djuki_mag@elitesecurity.org
ICQ: 66867882


Profil

icon Re: Datoteke06.02.2003. u 12:17 - pre 229 meseci
Meni je obavezno koriscenje standardnih funkcija iz stdio.h zaglavlja, jer mi treba za skolu znaci fopen, fseek, fputc, fread itd... Molio bih objashljenje kako kreirati fajl uz pomoc ovih funkcija u Windowsu.
 
Odgovor na temu

Milan Aksic

Član broj: 412
Poruke: 1053
*.beotel.net



Profil

icon Re: Datoteke06.02.2003. u 12:39 - pre 229 meseci
Onda ti mozda ovo treba:
Code:

FILE *fIn, *fOut;
char file1, file2;

...
// otvaranje u 'binarnom' read mode
fIn = fopen(file1, "rb");

// otvaranje u 'binarnom' write mode
fOut = fopen(file2, "wb");

...
// kada pokazivaci vise nisu potrebni
fclose(fIn);
fclose(fOut);

Za ostalo pogledaj HELP, siguran sam da ima detaljnijih objasnjenja a vrlo je moguce da postoji i poneki example (pogotovu, ako je u pitanju Borland) uz descr.
 
Odgovor na temu

Djuki
Djurdjevac Ivan
Pancevo

Član broj: 56
Poruke: 171
*.panet.co.yu

Jabber: djuki_mag@elitesecurity.org
ICQ: 66867882


Profil

icon Re: Datoteke07.02.2003. u 16:00 - pre 229 meseci
Izgleda da nisam bio najjasniji i da me nisi shvatio.
Pitanje je:
Da li funkcija :
Code:
FILE *datoteka;
datoteka=fopen("c:\putanja\fajl.txt", "w+"); 

treba da napravi datoteku fajl.txt ako ona ne postoji u tom direktorijumu?
Ja u stvari hocu da moj program napravi datoteku na disku i u knjigama i pise da ona to i radi kada je rezim "w+" ili "w+b" ako je datoteka binarna. Ali meni je problem sto kad izvrsim ovaj program u direktorijumu c:\putanja\ nema datoteke fajl.txt. Nadam se da sam bio jasniji.
 
Odgovor na temu

Reljam
Relja Markovic
San Francisco

Član broj: 531
Poruke: 1793
*.microsoft.com



+18 Profil

icon Re: Datoteke07.02.2003. u 18:29 - pre 229 meseci
Prvo, c:\putanja mora da postoji da bi se ovo izvrsilo. Ako taj path postoji, onda ce ovo da radi, osim sto moras da napises \\ umesto \ . Dakle, string je:

Code:
datoteka=fopen("c:\\putanja\\fajl.txt", "w+"); 
 
Odgovor na temu

[es] :: C/C++ programiranje :: Datoteke

[ Pregleda: 3306 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

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