Przycinanie pliku

0

Przycinac plik można funkcją trunciate. Ale ja ma taki otóż problem. Funkcja triuncate ucina plik TYLKO ok kursora , w prawą stronę (pokazuje obrazowo) . Ja chcialbym uciac plik na poczatku tak aby to co bylo za nim zostalo >> (sproboje z obrazowac>) |||||||||||||||||||||| < to jest plik, ja chce wyciac czesc niebieska, a czesc czerwona ma zostac. jak to mozna zrobic zeby bylo szybko i krotko (czas)? wiadomo oczywiscie mozna odczytac czesc za plikiem potem utworzyc nowy plik skopiowac ta czesc. ale gdy ten jeden plik zajmuje np. 1GB? takie przenoszenie trwalo by bardzo dlugo, a juz gdzyby wykorzystac pamiec to i tak raczej niewystarczyla by. :) czy jest jakis inny sposob? :)

0

nie ma innego sposobu

ew. możesz jeszcze grzebiąc w FATcie znaleźć dokładny adres klastra, w którym jest Twój nowy początek pliku i ustawić w FATcie początek pliku na ten klaster. Dodatkowo trzeba by oznaczyć usunięte klasty jako nieużywane i zaktualizować rozmiar pliku. Z tym, że jeśli początek niwego pliku wypadnie w środku klastra to może być problem.

Oczywiście tak mniej więcej działa FAT natomiast jak NTFS to już sobie musisz sam znaleźć bo nigdy się nie wgłębiałem

0

W takim razie stosujesz niewygodny format pliku. Może po prostu przy danych na początku pliku zaznacz, że ten obszar nie jest wykorzystywany i nowe dane mogą go nadpisać, a od czasu do czasu zdefragmentuj ten plik. Dokładnie tak robi na przykład Outlook Express ze swoim "kompaktowaniem wiadomości".

0

... albo dystrybutor pamięci z którym porozumiewamy się przez getmem(), new() i freemem(), dispose().
Bo mark() i release() jakoś wychodzą z mody.

A czy pliku tego używa ktoś jeszcze? Czy tylko twój program?
Robisz to raz na jutro, czy może 1000 razy dziennie?
Czy może to tylko ?akademicka ciekawość??

A swoją drogą, to ciekawe czy jest jakiś SYSOP który pozwala ?strzyc? nie tylko od końca?

0

Wiecie otóż z jednej strony to moja ciekawość :P. Robie program, i do jednej z wielu funkcji jest mi to potrzebne. swoja droga to problemu by nie bylo gdyby kazdy mial pliki najwyzej 10 MB :P. no cóż ale jak sie zdarzy, że bedzie 1GB i moj program mialby kopiowac i wklejac ... to by strasznie duzo czasu zajelo :). mozna bylo by wykorzystac pamieć no ale czy kazdy ma jej duzo? . i jescze jedno gdyby program robil to raz to juz by moglo byc z tym wycinaniem i przestawianiem (..). tylko ze to moze byc wykorzystywanie 100 lub 10000 razy (kto wie ile). No i nie jestem jeszcze studentem ;-) .

0
Szczawik napisał(a)

Dokładnie tak robi na przykład Outlook Express ze swoim "kompaktowaniem wiadomości".

dodam tylko, że też tak robi The Bat!, 40tude Dialog (to z programów, które używam i które składują większe ilości danych we własnych formatach) i każda normalna baza danych

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