Wątek przeniesiony 2014-07-28 18:18 z C/C++ przez ŁF.

Usuwanie rozmiaru pliku lub ostatniego znaku z pliku

0

Witam jestem początkujący mógłby mi ktoś pomóc w napisaniu kodu pewnego
mam plik tekstowy który ciągle się zmienia tzn jego wartość się zmienia.
Chciałbym mieć możliwość ucięcia w pewnych wypadkach (zdrazeniach) np kliknięcie klawisza
uciąć dokładnie 1 bajt pliku albo 1 znak od końca pliku obojętnie które z tych iochu nie wiem jak to zrobić
może być to winapi albo któras z bibliotek standardowych albo nawet niestandardowych
proszę o pomoc
Reasumując do pliku zapisywane są różne dane i rozmiar pliku się zmienia a ja w pewnym momencie chce usunąć po kliknięciu przycisku 1 bajt lub uciąć rozmiar pliku o jeden bajt względem losowego rozmiaru pliku (który się powiększa).
Ale po prostu usunąć ostatni znak z tego pliku
Znalazłem w winapi jedynie funkcj chsize czy jakoś tak która ucina do odpowiedniego rozmiaru plik a ja chciałbym o jeden bajt do tyłu ucinać tylko i wyłącznie o jeden przy losowym rozmiarze pliku

0

Oczywiscie tak jak @gośćabc pisze, 2 źródła na jeden plik dadzą chaos. Ale co tam, chcieć znaczy móc ;)

No więc - chcesz miec taki bajer że robisz klik i usuwasz 1 bajt z końca pliku... OK. więc musisz wiedzieć jaki jest rozmiar pliku TERAZ i musisz być pewny że jak coś zrobisz to nie skosisz drugiego programu. Czyli kolejność działań to: Otworzyć plik, założyć lock na plik, sprawdzić rozmiar pliku, zmniejszyć o 1, zapisać, zamknąć plik i odblokować.

Czyli metody do użycia to kolejno _fopen, _lock_file, _filelength, _chsize, fflush (tego nie jestem pewien czy potrzeba, _unlock_file, fclose

1 użytkowników online, w tym zalogowanych: 0, gości: 1