Witam :) Mam taki powiedzmy ze maly problem. Jak odczytuje z pliku dane do porownania nie wykrywa myslnika jest zupelnie inny symbol nie wiem czemu. Siedzialem nad tym juz 2 dni ale no nie w zab nie w oko niestety. Po 2 mam problem z przeskakiwaniem do następnej lini. Jak uzytkownik polelni blad to moze to powtorzy ale jak juz 3 raz popelni blad to niestety ale wskakuje mi kolejne linijka gdzie jest litera juz w postaci zakodowanej. Wklejam tutaj kod.
program project20;
uses
Crt,dos,dateutils,sysutils;
var
a,b : byte;
znak : char;
i : integer;
wybor:array [1..3] of Char;
procedure czesc_cwiczeniowa;
var
znak : char;
begin
ClrScr;
writeln('witaj w czesci cwiczeniowej');
delay(1000);
writeln('W alfabecie morsa cyfry zapisywane sa w postaci kropek i myslnikow');
delay(4000);
writeln('np a .-') ;
writeln('powtorz') ;
read(znak);
if znak= '.-' then
writeln('dobrze :)')
else
begin
writeln('jestes c****');
exit;
end;
writeln('pierwsze koty za poloty :)');
writeln('a tak wyglada b .-');
readln(znak);
readln;
end;
procedure czesc_testowa;
var
znak : char;
plik:Text;
dane : string;
tlumaczenie:String;
linii,znakow:Integer;
wynik : integer;
h,m,s,ss : word;
temp:String;
start,stop:tdatetime;
a,b : byte;
begin
writeln('czesc testowa');
writeln('witam cie drogi uzytkowniku. Jezeli chcesz zaczac ntesty napisz t a jesli chcesz wrocic napisz n');
znak:=readkey;
case znak of
't' : begin
gettime(h, m, s, ss);
temp:=inttostr(h)+':'+inttostr(m)+':'+inttostr(s);
start:=strtotime(temp);
writeln('zaczynasz test o : ',h, ':', m,':', s);
begin
begin
Assign(plik,'mors.txt');
if FileExists('mors.txt') then
begin
reset(plik);
while not eof(plik) do
begin
ReadLn(plik, dane);
b:=1;
repeat
begin
WriteLn('Podaj tlumaczenie slowa ',dane);
ReadLn(tlumaczenie);
if (tlumaczenie=dane) then WriteLn('OK, umiesz') else WriteLn('synek, synek... nie umiesz, proba', b, '/3');
inc(b) ;
end;
until (tlumaczenie=dane) or (b=3);
end;
gettime(h, m, s, ss);
temp:=inttostr(h)+':'+inttostr(m)+':'+inttostr(s);
writeln(temp);
stop:=strtotime(temp);
writeln('zakonczyles test o : ',h, ':', m,':', s);
writeln('ilosc bledow : ',b);
writeln('zakonczyles test w:',timetostr(start-stop));
end
else WriteLn('Nie ma takiego pliku!');
Close(plik);
ReadLn;
end;
end;
end;
'n' : begin
begin
writeln('papa');
end;
end;
end;
end;
procedure zapisywanie_do_pliku;
var
wyniki : text;
dane,imie,nazwisko,wynik:string;
i:integer;
begin
assign(wyniki, 'wyniki.txt.');
if fsearch('wyniki.txt',`) = ` then
begin
writeln('pliku nie ma na dysku tworze nowy plik');
rewrite(wyniki);
end
else
begin
assign(wyniki, 'wyniki.txt');
Append(wyniki);
begin
writeln('podaj swoje imie');
readln(imie);
writeln('podaj swoje nazwisko');
readln(nazwisko);
writeln('podaj swoj wynik');
readln(wynik);
write(wyniki,imie,' ',nazwisko,' ',wynik, #13, #10);
end;
close(wyniki)
end;
end;
procedure odczytywanie_z_pliku;
var
wyniki : text;
dane:string;
begin
Assign(wyniki, 'wyniki.txt');
Reset(wyniki);
repeat
Readln(wyniki, dane);
Writeln(dane);
until eof(wyniki);
end;
begin
gotoxy(20,1);
writeln('witam w programie do nauki alfabetu morsa');
writeln('1. Jezeli chcesz sie nauczyc alfabetu morsa wybierz [1]');
writeln('2. Jezeli chcesz zaczac testy wybierz [2]');
writeln('3. aby zoabczyc i zapisac swoj wynik wybierz [3]');
znak:=readkey;
case znak of
'1' : begin
czesc_cwiczeniowa;
end;
'2' : begin
czesc_testowa;
end;
'3' : begin
begin
writeln('chcesz zapisac swoj wynik czy zobaczyc wyniki innych osob?');
writeln('1. Aby zapisac swoj wynik nacisnij 1');
writeln('2. aby zoabczyc wyuniki innych osob nacisnij 2');
znak:=readkey;
case znak of
'1' : begin
zapisywanie_do_pliku;
end;
'2' : begin
odczytywanie_z_pliku;
readln;
end;
end;
end;
end;
end;
end.