Witam! Mam taki program:
unit bazkadanych;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
Tbaza = record
Pole : string[40];
id : integer;
end;
TForm1 = class(TForm)
listownik: TListBox;
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Edit2: TEdit;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Edit3: TEdit;
Button4: TButton;
procedure Button4Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
lista: array[0..100] of Tbaza;
ile: integer;
implementation
{$R *.dfm}
procedure load;
var
plik: file of Tbaza;
i: integer;
begin
AssignFile(plik, 'C:\Users\Mateusz\dodelphi\data.dat');
reset(plik);
i := 0;
if IOResult = 0 then
begin
while not eof(plik) do
begin
read(plik, lista[i]);
ShowMessage(lista[i].Pole + ' | ' + IntToStr(lista[i].id) + ' | I: ' + IntToStr(i));
Inc(i);
end;
closefile(plik);
ile := i;
for i := 0 to ile-1 do
Form1.listownik.Items.Add(lista[i].Pole + ' | ' + IntToStr(lista[i].id));
end;
end;
procedure save;
var
plik: file of Tbaza;
i: integer;
begin
AssignFile(plik, 'C:\Users\Mateusz\dodelphi\data.dat');
rewrite(plik);
for i := 0 to ile-1 do
begin
write(plik, lista[i]);
end;
closefile(plik);
end;
procedure new_record(pole1 : string; id : integer);
begin
if ile > 0 then
begin
lista[ile+1].Pole := pole1;
lista[ile+1].id := id;
end
else
begin
lista[ile].Pole := pole1;
lista[ile].id := id;
end;
Inc(ile);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
new_record(Edit1.Text, StrToInt(Edit2.Text));
listownik.Items.Add(Edit1.Text + ' | ' + Edit2.Text);
Edit1.Text := '';
Edit2.Text := '';
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
save;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
load;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
ile := 0;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
Edit3.Text := IntToStr(ile);
end;
end.
i tutaj jest problem. Gdy dodaje rekordy to jest wszystko ok, ale gdy je zapiszę i potem odczytam to
2gi rekord zawsze przyjmuje formę " |0" zamiast np. "Edit2 | 2". Z resztą rekordó jest wszystko ok i to jest dziwne. Z góry dziękuję za pomoc, POZDRAWIAM