Mam problem który polega błędnym wypisaniu danych z pliku rekordow. Moj fragment programu polega na zapisaniu rekordów do pliku, a nastepnie na ich ladnym wypisaniu. Jednak gdy na początku programu dopisze uses crt to pojawiają sie problemu z ktorymi nie umiem sobie poradzic:( Znacie moze jakiś sposob na wyczyszczenie ekrany bez korzystania z modulu crt, lub moze pomozecie mi rozwiazac moj problem? Problem polega na tym ze przy korzystaniu z czyszczenia ekranu wyswietla mi tylko ostatnie rekordy "ktore zmiescily sie na ekranie" + dwa bonusy.
Czy da sie wyczyścić ekran nie korzystajac z ClrScr??
moj problem postaram sie zilustrowac;
bez korzystania z crt wypisuje mi wszystkie wprowadzone dane:
http://imageshack.us/photo/my-images/862/beztytuuajg.png/
z dopisaniem uses crt po 3 uruchomieniu
http://imageshack.us/photo/my-images/716/beztytuubtq.png/
dodam ze nie dopisalem clrscr
program project1;
uses crt;
const
logintxt = 'D:\login.txt';
type
DaneLogowania = record
Login: string[20];
Haslo: string[20];
upr: Integer;
nrucznia: Integer;
end;
var
uprawnienie: Integer;
numerucznia, i: Integer;
procedure sprawdzczyjestlogin(sprlogin: string; var istnieje: Boolean);
var
pliklogin: file of danelogowania;
SprawdzanyRekord: DaneLogowania;
begin
istnieje := false;
Assign(pliklogin, logintxt);
Reset(pliklogin);
while not Eof(pliklogin) do
begin
Read(pliklogin, SprawdzanyRekord);
if SprawdzanyRekord.Login = sprlogin then
begin
istnieje := true;
Writeln('podany login istnieje, podaj inny');
Break;
end;
end;
Close(pliklogin);
end;
procedure dodanieuprawnienia(IdUcznia: Integer);
var
pliklogin: file of danelogowania;
LogDoDodania: danelogowania;
uprawnieniedododania: string;
istnieje: Boolean;
znak: Char;
begin
repeat
Writeln('podaj login do zapisu');
Readln(LogDoDodania.login);
sprawdzczyjestlogin(LogDoDodania.login, istnieje);
until istnieje = false;
Writeln('podaj haslo do zapisu');
Readln(LogDoDodania.Haslo);
repeat
Writeln('podaj uprawnienie 1-dla nauczyciela, 2-dla rodzica');
Readln(znak);
uprawnieniedododania := znak;
until (uprawnieniedododania = '1') or (uprawnieniedododania = '2');
Val(uprawnieniedododania, LogDoDodania.upr);
if uprawnieniedododania = '2' then
begin
LogDoDodania.Nrucznia := IdUcznia;
end
else
LogDoDodania.Nrucznia := 0;
Assign(pliklogin, logintxt);
Reset(pliklogin);
Seek(pliklogin, FileSize(pliklogin));
Write(pliklogin, LogDoDodania);
Close(pliklogin);
Writeln('login i haslo zostaly zapisane, wcisnij enter');
Readln;
end;
procedure wypiszloginy;
var
pliklogin: file of danelogowania;
WypisywanyRekord: danelogowania;
begin
Assign(pliklogin, logintxt);
Reset(pliklogin);
while not Eof(pliklogin) do
begin
Writeln;
Read(pliklogin, WypisywanyRekord);
Writeln(WypisywanyRekord.Login);
Writeln(WypisywanyRekord.Haslo);
Writeln(WypisywanyRekord.upr);
Writeln(WypisywanyRekord.nrucznia);
end;
Close(pliklogin);
end;
begin
//for i:=1 to 11 do
//dodanieuprawnienia(i);
wypiszloginy;
Readln;
end.