Kolejny wymysł dziwnych ludziów, oczywiście że się da, wystarczy poszukać w google i jestem pewien że znajdziecie jakiegoś koda.
Może źle się wyraziłem, da się, ale pod warunkiem, że zmienna plikowa nie jest typu TextFile
; Plik tekstowy tak jak i wszystkie inne jest plikiem binarnym, więc można go otworzyć jako taki, stąd da się;
Powiedz mi jaki typ zastosowałeś... file of string[255]? To nie zmieści ci się ponad 255 znaków a inaczej będziesz miejsce marnować... Bez sensu!
Nie zastosowałem żadnego, nie ja piszę program; Przy ShortString
wiadome, że się nie zmieści, ale autor nie napisał ile znaków może posiadać każda z linii, stąd można jedynie spekulować, co w tym przypadku będzie lepsze, a co gorsze; Marnować miejsce? Ciekawe, co odpowiedzieli by Ci autorzy XML'a, jak byś im to zarzucił;
Nie prawda, ja bym czytał od końca do #13 a potem z powrotem i tadam, ostatnia linia...
Tak? To ciekawe; No i pewnie napisał byś dwa osobne algorytmy, które sprawdzały by czy linia jest przed połową pliku, czy za i odpowiednio czytała by od początku / końca pliku? Bezsens; Poza tym jeśli chciałbyś sprawdzić pozycję linii w pliku to musisał byś znać ich liczbę, czyli i tak trzeba by przeczytać cały plik;
Wybaczysz, ale czy to nie to samo?
To samo? Wybacz, ale nie; Pliki amorficzne to tzw. pliki binarne, czyli deklaracja zmiennej plikowej jest typu File
; Plik typowany zaś to taki, który deklarowany jest specjalną konstrukcją File of TRecordName
; Przede wszystkim pliki amorficzne mają nieregularną budowę, czego o typowanych już powiedzieć nie można; Dalej twierdzisz, że to to samo?
Najlepsze rozwiązanie jeżeli o liniach nie można nic powiedzieć ciekawego to zastosowanie formatu (może to nawet być na zwykłym text) gdzie po #13 znajdowałby się numer linii, sądzę ze wtedy możnaby zgadywać gdzie jest linia a potem poprawiać domysły i tak aż się jej nie znajdzie, już nie mówiąc o zapamiętywaniu pozycji dalszych linii żeby przyśpieszyć wyszukiwanie...
Może i tak, może i nie, ale zgadywanie lepiej zostawić w spokoju, bo na to miejsca nie ma; W każdym razie można by się nad tym zastanowić; Pomysł raczej dobry (jeśli plik generowany jest przez własny program);
Równie dobrze można jechać w pętli po każdym odczytanym znaku z pliku i liczyć znak #13
, aż do szukanego i wtedy przeczytac całą linię; Rozwiązań jest kilka, ale i tak przy kilkugigabajtowych plikach będzie to chwilę trwało...