Witam, otóż na lekcję muszę dostarczyć projekt mój bazę danych i chodzi o to, że działa faktycznie, ale to co zapisuję się w pliku jest po prostu dziwne ;/
Kod :
program baza_danych;
uses CRT;
type
dane = record
imie: string[15];
nazwisko: string[20];
wiek: integer;
dochody: real;
end;
var
plik: file of dane;
nazwa_bazy: string;
ileosob: integer;
i, j: integer;
baza: array[1..20] of dane;
procedure menu;
begin
writeln('----------Witaj w szkolnej bazie danych----------');
writeln('1 - Wprowadzanie nazwy bazy danych.');
writeln('2 - Wpisywanie danych uczniowskich do bazy danych.');
writeln('3 - Wyswietlanie poszczegolnych uczniow z bazy danych.');
writeln('4 - Wyswietlanie wszystkich uczniow z bazy danych od pozycji pierwszej do x.');
end;
procedure poczatek;
begin
write('Podaj nazwe pliku: ');
readln(nazwa_bazy);
end;
procedure wprowadzanie;
begin
repeat
write('Podaj ile osob chcesz wprowadzic do bazy (max. 20): ');
readln(ileosob);
writeln;
until (ileosob<=20) and (ileosob>=1);
for i:=1 to ileosob do
begin
write('Podaj ',i,' imie: ');
readln(baza[i].imie);
write('Podaj ',i,' nazwisko: ');
readln(baza[i].nazwisko);
write('Podaj wiek ',i,' osoby: ');
readln(baza[i].wiek);
write('Podaj dochody ',i,' osoby: ');
readln(baza[i].dochody);
writeln('----------------------------------');
end;
end;
procedure wyswietl;
begin
j:=0;
writeln('Podaj ile osob chcesz wyszukac poprzez wpisywanie numerow: ');
readln(j);
for i:=0 to j do
begin
writeln('Podaj numer osoby ktora chcesz zobaczyc dane: ');
readln(i);
writeln('Imie ',i,' osoby to: ',baza[i].imie);
writeln('Nazwisko ',i,' osoby to: ',baza[i].nazwisko);
writeln('Wiek ',i,' osoby to: ',baza[i].wiek);
writeln('Dochody ',i,' osoby to: ',baza[i].dochody:8:2);
writeln('--------------------------------------------');
writeln;
end;
end;
procedure wyswietl_wiecej;
begin
j:=0;
writeln('Podaj ile pierwszych osob chcesz dane zobaczyc: ');
readln(j);
writeln;
for i:=1 to j do
begin
writeln('Imie ',i,': ',baza[i].imie);
writeln('Nazwisko ',i,': ',baza[i].nazwisko);
writeln('Wiek ',i,': ', baza[i].wiek);
writeln('Dochody ',i,': ', baza[i].dochody:8:2);
writeln('---------------------------------');
end;
end;
procedure zapisz;
begin
assign(plik,nazwa_bazy);
rewrite(plik);
for i:=1 to ileosob do
begin
write(plik,baza[i]);
end;
close(plik);
end;
begin
clrscr;
poczatek;
wprowadzanie;
wyswietl;
wyswietl_wiecej;
readln;
zapisz;
clrscr;
end.
wszystkie procedury są okej, ale problem jest z procedurą zapis... Zapisuje mi do pliku, ale w tym pliku jest bałagan i w ogóle brzydko :P
To co mam w pliku
testimie test1 ‡ vtestimie2 test2 Ĉ j
testimie to imiona
test 1 i 2 to nazwiska i te teksty w miare dzialają
wiek i dochody to jak sami widzicie, nic tam nie ma tylko jakieś znaczki.
Nie mam pojęcia jak to naprawić. Dodatkowo mam pytanie, czy można zrobić tak, aby te imiona zpaisywały się pod sobą oddzielone "-------------" i w taki sposob:
Imie 1: Ja
Nazwisko 1: My
Wiek 1: 12
Dochody 1: 3233
Imie 2 : 2324
itd..
problem też występuję jak nad close(plik); chcę wpisać write(plik,'traararlala test test: 123'); to wyskakuje błąd ;/
Z góry dziękuję za pomoc ;) Pozdrawiam