Podczas pracy spotkałem się z ograniczeniem dopisywania do pliku poprzez Append
To jedyne ograniczenie. Write
jak i ReWrite
potrafią więcej. Nigdzie nie doszukałem się w dokumentacji, że Append
jest ograniczony do 2GB, ale takie wyniki otrzymałem gdy składowałem dane do pliku, gdy plik zbliżył się do 2GB otrzymałem błąd zapisu. Wpierw myślałem, że za szybko otwieram i zamykam uchwyt pliku. Jednak to było bez znaczenia. 2GB i error.
Może operujesz na systemie plików FAT który ma takie ograniczenie?
<= 2GB separated by crlf
Spróbuj czegoś nowocześniejszego http://docwiki.embarcadero.com/CodeExamples/Sydney/en/StreamStrRdWr_(Delphi)
Tutaj masz to chyba dość dobrze wytłumaczone https://www.codeguru.com/cpp/w-d/doc_view/fileopensave/article.php/c12917/Getting-Past-the-2-Gb-File-Limit.htm
Jak można wywnioskować, problemem nie jest Windows ani jego API a raczej implementacja w środowiskach programistycznych a dokładnie wewnętrzne numerowanie większości rzeczy (gdy nie definiujemy wprost typu zmiennej) do Long które o dziwo ma inny zakres niż można by się spodziewać?
Teoretycznie wystarczy zamienić ten typ na coś większego (tylko po co skoro powinno i tak zadziałać) i problem rozwiązany, w praktyce nie jest to takie proste, chociaż w przytoczonym źródle są pewne sztuczki aby powalczyć (fakt że dla innego środowiska ale jednak).
problemem jest raczej to, że my mamy 10 palców, a komputer tylko 1. Ciekawym, czy zdziwienie byłoby mniejsze gdyby ograniczenie wynosiło 1 000 000 000. No ja bym się wtedy bardzo zdziwił