![]() |
| | #1 (permalink) | ||
| Pozitionare file pointer
Se poate cumva ca daca deschid un fisier pt appending sa fac asa incat file pointerul sa nu mai fie repozitionat la sfarsitul fisierului cand vreau sa scriu in el ? (Practic eu vreau sa suprascriu o parte din datele din fisier.)
__________________ Keep buttwalking. | |||
|
| | #4 (permalink) | ||
| Registered User Join Date: Jul 2001 |
Cu fopen deschizi fisierul petru citire/scriere si cu fseek il muti peste cati bytes vrei. Ai aici un exemplu http://www.cplusplus.com/reference/c...dio/fseek.html
__________________ .... vremurile sunt aproape... | ||
|
| | #5 (permalink) | ||
|
Stiu asta, problema e ca file pointerul e pozitionat la sfarsitul fisierului inainte de fiecare scriere cand fisierul e deschis pt appending. Degeaba fac fopen, apoi fseek pt ca atunci cand scriu muta file pointerul la sfarsitul fisierului. Ma gandeam ca se poate face cumva ca sa nu mai repozitioneze file pointerul inainte de scriere si sa-l lase unde il pun eu. [code] FILE *fp; _stat64i32 fstats; //iau marimea fisierului ::_wstat64i32(_T("C:\myfile.txt"), &fstats); //il deschid ::_tfopen_s(&fp, _T("C:\myfile.txt"), _T("atc, ccs=UNICODE")); //fac fseek pana la jumatate ::fseek(fp, fstats.st_size / 2, SEEK_SET); //si vreau sa scriu peste cealalta jumatate //problema e ca file pointerul e pozitionat la sfarsit //inainte de scriere ::_ftprintf_s(fp, _T("%s %d"), _T("bla bla"), 10000); //deci textul e adaugat la sfarsitul fisierului //si nu la jumatatea lui unde as vrea eu [/code]
__________________ Keep buttwalking. Last edited by adimisu; 24-03-2008 at 10:15.. | |||
|
| | #6 (permalink) | ||
| Registered User Join Date: Dec 2003 |
Uita-te in dictionar ce inseamna "appending" sa intelegi de ce se intampla asta. Ceea ce vrei tu se numeste "updating", "editing" etc. insemnand inlocuirea unei portiuni de o anumita lungime din fisier; "appending" inseamna adaugarea a ceva LA SFARSITUL fisierului. Vine de la "UP" si "ENDING". | ||
|
| | #7 (permalink) | ||
|
Ma rog, poate nu m-am exprimat eu bine, deci ce vreau sa fac e sa suprascriu o parte din datele fisierului. Chestia e ca as vrea sa evit sa deschid fisierul si sa copiez din el ce-mi trebuie in alt fisier, pe urma sa-l sterg pe cel vechi, sa adaug ce vreau si sa scriu alt fisier cu acelasi nume. -------------------- Editare ulterioară -------------------- Hai ca am rezolvat-o. Merge cu SetFilePointer/SetFilePointerEx.
__________________ Keep buttwalking. Last edited by adimisu; 24-03-2008 at 18:54.. Reason: Automerged Doublepost | |||
|
| Advertisment | |
![]() |
|
| Thread Tools | |
|
|