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?
Myślę, że jeśli przeczytasz to http://turbopascal.helion.pl/r-19.htm , to rozwiązanie samo Ci sie nasunie na myśl.
Mateusz K napisał(a)
Czy da się jakoś ładnie to porozdzielać w Turbo Pascalu nie pisząc wielkiej procedury
Pokaż co napisałeś.
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,';'));
@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.
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ąć...
@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:)
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.
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 ;)