Ocena wątku:
- 0 Głosów - 0 Średnio
- 1
- 2
- 3
- 4
- 5
|
pomocy baza danych w pascalu
|
| Autor |
Wiadomość |
WebNuLL
Linux support
Liczba postów: 1766
Dołączył: Sep 2009
Reputacja: 45
€: 4127
OS: Linux Gentoo
|
|
| 22.10.2010 20:27 |
|
Propagandi
Początkujący

Liczba postów: 91
Dołączył: Mar 2010
Reputacja: 8
€: 100
OS:
|
RE: pomocy baza danych w pascalu
Niby jest ok, ale w praktyce przy usuwaniu ostatniego rekordu program zapętla się na pierwszym repeacie w procedurze i nie może wyjść. Wrzuciłem tam jakieś instrukcje warunkowe, żeby tym konkretnym przypadkiem zająć się osobno i jakoś śmiga. filesize(baza) zwraca liczbę rekordów w bazie.
Kod:
procedure usun;
var numer:byte;
temp: file of tdane;
dane:tdane;
begin
write('Podaj numer rekordu do usuniecia: ');
readln(numer);
seek(baza,numer);
if numer < filesize(baza) then
begin
assign(temp,'d:\temp.bin');
rewrite(temp);
repeat
read(baza,dane);
write(temp,dane);
until eof(baza);
seek(baza,numer-1);
truncate(baza);
seek(baza,filesize(baza));
seek(temp,0);
repeat
read(temp,dane);
write(baza,dane);
until eof(temp);
close(temp);
erase(temp)
end
else if numer = filesize(baza) then
begin
seek(baza,numer-1);
truncate(baza)
end
else writeln('Nie ma takiego rekordu w bazie');
end;
|
|
| 23.10.2010 19:21 |
|
Użytkownicy przeglądający ten wątek: 1 gości