ZX Spectrum > PROGRAMOWANIE

Jak wykryć koniec pliku

<< < (2/2)

tooloud:

--- Cytuj ---MD/IF1 ma headery tylko są bardziej sektorowe.

--- Koniec cytatu ---
mikro korekta - nie sektorowe tylko blokowe.

matofesi:
Nikt nie mówi, że się nie da. Postawiony problem to zrobienie tego z BASICa i tu odpowiedź jest taka, że się nie da.

W kilku miejscach w które zaglądałem sugestia jest taka, żeby problem rozwiązać tak jak to zrobił autor pytania. Można też - jak przeczytałem nie wdając się w szczegóły - grzebać po zmiennych systemowych i sprawdzać w którym miejscu bufora się znajdujemy, ale tam problem się pojawia wtedy jak plik będzie miał długość, która jest wielokrotnością 512 bajtów.

Ale ogólna odpowiedź jest taka, że z samego BASICa się nie da.

Phonex:
Można też użyć obsługi błędów - chociażby z programu Supercode.
We wskazanej linii programu sprawdzić, czy błąd to "End of file" - jeśli tak to zakończyć odczyt i kontynuować program.
Nie bardzo eleganckie rozwiązanie, ale jak nie da się inaczej...

tooloud:
Panowie, nie chcę wyjść na marudę, ale poza plikami tekstowymi istnieje dość spora liczba zastosowań czytania plików binarnych, w których bajt o wartości 255 występuje na porządku dziennym (vide zawartość ekranu ZX Spectrum) a metoda "na wartość 255" no jakby... zadziała źle czyli jest to żadna metoda w sensie uniwersalności działania.


--- Cytat: matofesi w 2024.03.06, 15:36:02 ---Nikt nie mówi, że się nie da. Postawiony problem to zrobienie tego z BASICa i tu odpowiedź jest taka, że się nie da.
--- Koniec cytatu ---

Pokminiłbym na miejscu autora z wnioskami z tego tekstu, bo jest tam sporo info nt buforów, microdrive map etc. :
https://retrocomputing.stackexchange.com/questions/28072/using-sinclair-zx-microdrive-is-it-possible-to-random-access-a-text-file

IHMO da się to odczytać (długość bloku danych etc.), ale trzeba się trochę namęczyć, bo nie leży to w samym pliku programu a w bloku danych na MD. Ale odczytując mapę MD (a CAT też to musi robić) to już idąc dalej można się pobawić. IHMO nawet w BASICu da się zrobić do tego "obudowę" by to odczytać, ale będzie to już grubsze szycie :)

Nawigacja

[0] Indeks wiadomości

[*] Poprzednia strona

Idź do wersji pełnej