[PASCAL] baza danych

Czesc.

Ucze sie programowania i chce wykonac baze danych (np pacjentow ) do ktorej bede mogl dodawac nowe rekordy, usuwac je, edytowac i moze sortowac… :slight_smile:

Meczylem sie z tym zadaniem i uzyskałem coś takiego…:

program projekt;


uses crt;


type osoba = record

           imie:string[15];

           nazwisko:string[30];

           wiek:integer;

           miejscowosc:string[50];

           nr:integer;

    end;


var plik: file of osoba;

    pacjent:osoba;


    wybor,liczba,liczbaPacjentow,i:integer;

    ile,ilosc:integer;


    spis:array[0..30]of osoba;


    { ******************************************************************* }


{procedura tworzenia nowej bazy}

procedure nowa;


begin

Assign(plik, 'C:\baza.bin');

Rewrite(plik);


Close(plik);


end;

{koniec procedury}


{procedura dodawania pacjenta}

procedure dodaj;



begin

Assign(plik, 'C:\baza.bin');

Reset(plik);



Writeln('Podaj imie:');

Readln(pacjent.imie);

Writeln('Podaj nazwisko');

Readln(pacjent.nazwisko);

Writeln('Podaj wiek:');

Readln(pacjent.wiek);

Writeln('Podaj miejsce zamieszkania:');

Readln(pacjent.miejscowosc);

Writeln('Podaj nr ewidencji:');

Readln(pacjent.nr);



Close(plik);

end;

{koniec procedury dodawania}


{procedura usuwania}

procedure usun;


begin

Assign(plik, 'C:\baza.bin');

Reset(plik);


Writeln('Podaj nr pacjenta do usuniecia:');

Readln(liczba);


Close(plik);

end;

{koniec usuwania}


{edycja danych pacjenta}

procedure edytuj;


begin

Assign(plik, 'C:\baza.txt');

Reset(plik);




Close(plik);

end;



    { ****************************************************************** (*}



begin

clrscr;


repeat

Writeln(' ');

Writeln('1 - stworz nowa baze danych');

Writeln('2 - dodaj pacjenta');

Writeln('3 - usun pacjenta');

Writeln('4 - edytuj pacjenta');

Writeln('0 - zakoncz');

Writeln(' ');

Readln(wybor);




CASE wybor of

1 : nowa;

2 : dodaj;

3 : usun;

4 : edytuj;

end;

until wybor=0;


end.

Tworzy mi nowa baze(plik) jednak gdy chce go otworzyc poprostu w notatniku to jest pusty ;/

Dodawac niby dodaje… jednak nie mam pomyslu jak zrobic zeby mozna usuwac i edytowac:( moze mi ktos pomoc? bede bardzo wdzieczny!!

Proszę: http://www.pascal.eu.org/lekcja4.htm

No wlasnie opierajac sie na tej instrukcji napisalem to co napisalem… nie wiem czmeu np jesli zamkne program to w pliku txt nie ma juz tych danych ;/

Mozecie mi pomoc? tylko wskazac gdzie robie blad i jaki… przeciez nie prosze chyba o tak wiele?

Rewrite(plik); - kasuje zawartość.

Pascala już nie pamiętam, ale wydaje mi się, że

Readln(pacjent.nr);

<-tutaj

Close(plik);

chciałeś na pewno umieścić kod który zapisze rekord “pacjent” do pliku “plik” :slight_smile:

No tak… tlyko jak to teraz mam zrobic?

Skoro mam juz ten rekord to jak go zapisac do pliku??

No i wracamy do odpowiedzi której udzielił ci SyntaxError : http://www.pascal.eu.org/lekcja4.htm

Odpowiedź jest krótka, zwięzła i niezwykle wyczerpująca.