Turbo Pascal wczytywanie elementów z pliku tekstowego

0

Witam.
Mam pewien problem. Zdałem do 3 LO. Uczę się Turbo Pascala od września. Intensywniej niż tego każą w szkole. Przerabiam zadania z matury z informatyki z tego roku i mam pewien dylemat. Mam plik osoby.txt (załącznik). Są tam różne dane oddzielane średnikiem, np. ' o001;Adam;Roztoka;501358358 '. Moje pytanie brzmi: Czy da się jakoś ładnie to porozdzielać w Turbo Pascalu nie pisząc wielkiej procedury iż na maturze nie ma aż tak wiele czasu?tj. do jednej zmiennej/tablicy id[i]=001, imie[i]=Adam itd.? oraz drugie pytanie: Czy czasem nie lepiej tego zrobić za pomocą MS Office Excel lub innego narzędzia Pakietu MS Office?

0

Myślę, że jeśli przeczytasz to http://turbopascal.helion.pl/r-19.htm , to rozwiązanie samo Ci sie nasunie na myśl.

0
Mateusz K napisał(a)

Czy da się jakoś ładnie to porozdzielać w Turbo Pascalu nie pisząc wielkiej procedury

Pokaż co napisałeś.

0

Do takich celów najlepiej pasuje prosta funkcja:

function Parse(var Str:String;const Delimeter:String):String;
var P:Integer;
begin
  P:=Pos(Delimeter,Str);
  if P>0 then
  begin
    Result:=Copy(Str,1,P-1);
    Delete(Str,1,P);
  end
  else
  begin
    Result:=Str;
    SetLength(Str,0);
  end;
end;

Użycie:

ReadLn(plik,Line);
tb[i].id:=StrToInt(Parse(Line,';'));
tb[i].Imie:=Parse(Line,';');
tb[i].Nazwisko:=Parse(Line,';');
tb[i].Indeks:=StrToInt64(Parse(Line,';'));
0

@Mateusz K: zobacz sobie na kody w załączniku mojego posta w wątku pod adresem: http://4programmers.net/Forum/Off-Topic/172532-matura_z_informatyki?start=50 i będziesz wiedział jak to zrobić pod Delphi 7. Również pod FPC można to zrobić, ja tam sobie ułatwiłem zadanie i skorzystałem z klasy TStringList oraz wygoglowanej kiedyś funkcji Explode. Dopuszczenie Turbo Pascala jako narzędzia, w którym mozna pisać na maturze uważam za nieporozumienie, minimum to powinien być FPC, bo można w nim użyć konstrukcji znanych z Delphi i można również otrzymać pliki wykonywalne kompatybilne z Windowsem. Jednak nie można raczej pod FPC wygodnie pracować na pełnym ekranie pod Windows 7, dlatego polecal bym najwygodniejsze - według mnie - z dopuszczalnych narzędzi czyli Delphi 7. Jeżeli używasz Windows 7 i robisz to z głową to można wyłaczyć w ogóle upierdliwe UAC i nie mieć żadnych problemów z tworzeniem plików pod Delphi 7.

0

No właściwie lepiej to zrobić w excelu jeśli masz taką możliwość bo wystarczy zmienić rozszerzenie na .csv i dwa razy kliknąć...

0

@olesio: Dzięki, pomogłeś mi. Właśnie takiej odpowiedzi oczekiwałem, a nie typu: 'Tu masz poradnik, algorytm sam przyjdzie Ci do głowy' iż to raczej pewne. Ale liczyłem na poradę, która coś wniesie:)

0
program wyszukiwanie_usuwanie+Pascal;
uses Crt;
var
   zdanie: String;
   i,j: Byte;
BEGIN
     Clrscr;
     zdanie:='1;tak;88;nowak;';
     for j:=1 to 2 do
     begin
     i:= Pos(';',zdanie);
     Delete(zdanie,1,i);
     Writeln(zdanie);
     end;
     i:=Pos(';',zdanie);
     Delete(zdanie,i,length(zdanie)-i);
     Writeln(zdanie);
END. 

Sam wykombinowałem w parę minut i jest krótka. A spodziewałem się dłuższej. @50h: Zmotywowałeś mnie.
Wstawiam dla tych, co kiedyś szukać będą. Na maturę też się nadaje. Pisałem w Turbo Pascalu.

0
Mateusz K napisał(a)

Wstawiam dla tych, co kiedyś szukać będą. Na maturę też się nadaje. Pisałem w Turbo Pascalu.

no muszę Cię zmartwić bo posty z tego działu znikają po kilkunastu dniach
a poza tym zajęło Ci to 5 minut a napisałeś po 48 godzinach ;)

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