Kod nieformatowany, znaczy że nie chętnie go czytamy :P Tak do rymu.
Przeanalizuj sobie kod programu, który kiedyś napisałem za jednego - z
óśób pytających na forum, a poźniej dopisałem proste wyszukiwanie, no
i powtórze się znowu, jak nie umiesz formatować kodu samodzielnie lub
nie chce się Tobie tego robić to użyj programu z pod poniższego adresu:
http://www.mediafire.com/?0btnnnuywyn
program pierd1;
uses
crt, dos;
type
Osoba = record
Imie : string[20];
Nazwisko : string[20];
Wiek : Byte;
end;
const
NazwaPliku = 'D:\imiona.dat';
var
S : string;
Dane : Osoba;
I, Kod : integer;
Plik : file of Osoba;
Tab : array[1..2] of Osoba;
function FileExists(const FileName : string) : boolean;
var
SR : SearchRec;
begin
DOS.FindFirst(FileName, $3F, SR);
if DosError = 0 then
begin
FileExists := (SR.Attr and $18) = 0;
end
else
begin
FileExists := False;
end;
end;
procedure WczytajPlik;
var
I, IleRekordow : integer;
begin
if FileExists(NazwaPliku) = False then
begin
Writeln('Plik: ', NazwaPliku, ' - nie istnieje!');
Readln;
end
else
begin
ClrScr;
Assign(Plik, NazwaPliku);
Reset(Plik);
IleRekordow := FileSize(Plik);
if IleRekordow > 0 then
begin
for I := 1 to IleRekordow do
begin
Read(Plik, Dane);
Writeln(' Osoba numer: ', I, ' - dane:');
Writeln(' Imie: ', Dane.Imie);
Writeln(' Nazwisko: ', Dane.Nazwisko);
Writeln(' Wiek: ', Dane.Wiek);
Writeln;
end;
Readln;
end;
end;
end;
procedure ZapiszPlik;
begin
ClrScr;
Assign(Plik, NazwaPliku);
Rewrite(Plik);
Writeln('Wprowadz dane...');
for I := Low(Tab) to High(Tab) do
begin
with Tab[I] do
begin
Writeln('Dane osoby numer: ', I, ' z: ', High(Tab));
Write('Podaj imie: ');
Readln(Imie);
Write('Podaj nazwisko: ');
Readln(Nazwisko);
repeat
Write('Podaj wiek: ');
Readln(S);
Val(S, Wiek, Kod)
until (Kod = 0) and (Wiek > 0) and (Wiek < High(Wiek));
Write(Plik, Tab[I]);
end;
end;
Close(Plik);
end;
procedure SzukajOsoby;
var
Znaleziono : boolean;
SzukaneNazwisko : string;
I, IleRekordow : integer;
begin
if FileExists(NazwaPliku) = False then
begin
Writeln('Plik: ', NazwaPliku, ' - nie istnieje!');
Readln;
end
else
begin
ClrScr;
Assign(Plik, NazwaPliku);
Reset(Plik);
IleRekordow := FileSize(Plik);
if IleRekordow > 0 then
begin
Znaleziono := False;
Writeln('Podaj nazwisko osoby, ktora chcesz wyszukac.');
Write('UWAGA! wielkosc liter ma znaczenie: ');
Readln(SzukaneNazwisko);
for I := 1 to IleRekordow do
begin
Read(Plik, Dane);
Znaleziono := Dane.Nazwisko = SzukaneNazwisko;
if Znaleziono = True then
begin
Break;
end;
end;
if Znaleziono = True then
begin
Writeln(' Znaleziono osobe pod numerem: ', I, ' - dane:');
Writeln(' Imie: ', Dane.Imie);
Writeln(' Nazwisko: ', Dane.Nazwisko);
Writeln(' Wiek: ', Dane.Wiek);
Writeln;
end
else
begin
Writeln('Nie znaleziono osoby o nazwisku: ', SzukaneNazwisko);
Writeln;
end;
Readln;
end;
end;
end;
procedure PokazujMenu;
var
Odp : Char;
begin
ClrScr;
Writeln(' Program dla leniwego Juv3r-a');
Writeln(' ============================');
Writeln;
Writeln(' Co chcesz zrobic:');
Writeln;
Writeln(' 1 = zapis pliku');
Writeln(' 2 = odczyt pliku');
Writeln(' 3 = szukaj osoby po nazwisku');
Writeln;
Writeln(' Kazdy inny klawisz - wyjscie z programu...');
Odp := ReadKey;
case Odp of
'1' : ZapiszPlik;
'2' : WczytajPlik;
'3' : SzukajOsoby;
else
Halt;
end;
end;
begin
PokazujMenu;
end.