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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie

×
×
  • Dodaj nową pozycję...