Skocz do zawartości
Forum komputerowe PC Centre
StaM

[Pascal] Prośba o pomoc! Rekordy, plik tekstowy!

Rekomendowane odpowiedzi

Witam! Proszę o pomoc. Piszę program na zaliczenie I semestru z przedmiotu Metodologia Programowania. Niestety nie miałem nic o tablicach, ani rekordach, dlatego zwracam się do was z prośbą.

 

Mam coś takiego:

program zal2;

uses crt,dos;

const
twoje='a';

var
zabezp,haslo,hass:string;
w:byte;
w2:char;
plik:text;
napis:string;

label menu;
label next;

procedure jedynka;
begin
clrscr;
assign(plik,'C:\persony.txt');
rewrite(plik);
REPEAT
readln(napis);
writeln(plik,napis);
UNTIL napis=('@@@');
close(plik);
rename(plik, 'C:\persony.sys');
SetFAttr(plik,hidden)
end;

procedure dwojka;
begin
clrscr;
assign(plik,'C:\persony.sys');
reset(plik);
while not Eof (plik) do
begin
readln(plik,napis);
writeln(napis);
end;
readln;
close(plik);
end;

procedure trojka;
begin
clrscr;
dwojka;
assign(plik, 'C:\persony.sys');
append(plik);
REPEAT
readln(napis);
writeln(plik,napis);
until napis=('@@@');
close(plik);
end;


begin
clrscr;
writeln('Witam w programie Niezapominajka!');
writeln('W programie mozesz przechowywac adresy,tel i inne przydatne rzeczy.');
writeln('Wcisnij dowolny klawisz aby przejsc dalej.');
readln;
repeat
clrscr;
writeln('DOSTEP ZABLOKOWANY!');
writeln('Podaj haslo:');
readln(haslo);
until(haslo=twoje);
writeln('Haslo poprawne!');
delay(2000);
menu:
clrscr;
writeln('MENU:');
writeln('1. Stworz baze danych');
writeln('2. Odczytaj baze danych');
writeln('3. Dopisz do bazy danych');
writeln('K. Koniec');
writeln('0. Autorzy');
writeln;
writeln('Wybierana opcja: ');
read(w);
case w of
1:jedynka;
2:dwojka;
3:trojka;
4:begin
clrscr;
read(w2);
writeln('Czy na pewno chcesz usunac swoja baze danych?');
case w2 of
'n','N':begin
write('Ok. Powrot do menu.');
delay(5000);
goto menu;
end;
't','T':begin
write('Podaj haslo, aby usunac plik: ');
readln(hass);
if hass='abc' then erase(plik);
write('Plik zostal usuniety!');
delay (1800);
goto menu;
if hass<>'abc' then write('Haslo bledne! Powrot do menu!');
goto menu;
end;
end;
end;
0:goto next;
end;
readln;
next:
end.

 

Czy możecie mi powiedzieć, czemu jak wybieram w 'case' numer '4' to pojawia mi się napis z zapytaniem o usunięciu pliku, wpisuję: n,N,t,T-nie zależnie którą z tych literek, to i tak wychodzi z programu ;/

 

I chciałbym, aby:

1. W procedurze 1 było:

- program wyprowadza: 'nazwisko'-użytkownik wpisuje, daje enter, program wyświetla: 'imię:'-użytkownik podaje immię i klika enter, i program pyta o, 'nr telefonu'-użytkownik wpisuje daje ENTER i program pyta, 'Czy chcesz dodać kolejną osobę?' jeśli 'tak', to powraca do: 'nazwisko', jeśli 'nie' to zapisuje plik i powraca do głównego menu wyboru;; po odczytaniu wygląda to tak:

 

Nazwisko: PODANE PRZEZ URZYTKOWNIKA
Imię: PODANE PRZEZ URZYTKOWNIKA
Numer Telefonu: PODANE PRZEZ URZYTKOWNIKA

 

- jeśli jest już dany plik, to program pyta użytkownika czy nadpisać;

 

Bardzo proszę o pomoc

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

read(w2);

writeln('Czy na pewno chcesz usunac swoja baze danych?');

case w2 of

 

dwie pierwsze linie jakby pomylone co do kolejności, więc możliwe, że w2 nie trzyma wcale tego n/t, ktore użytkownik wpisze.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

×
×
  • Dodaj nową pozycję...