Форум: "Начинающим";
Текущий архив: 2006.04.09;
Скачать: [xml.tar.bz2];
Внизвывод записи в стринггрид Найти похожие ветки
← →
VAZMan © (2006-03-23 19:18) [0]Кто-нить помогите, проблема с выводом информации (находящейся в файле) в стринггрид.
Вот описание кнопки регестрации:procedure TReg.Button1Click(Sender: TObject);
var user: Tuser;
begin
assignfile(f, "c:\kurs\users.db");
reset(f);
if filesize(f)=0
then begin
read(f, user);
user.RecN :=1;
end
else begin
Seek(f, FileSize(f));
with user do
begin
imya:=Eimya.text;
fam:=Efam.text;
otch:=Eotch.text;
gr:=Egr.text;
login:=Elogin.text;
password:=Epassword.text;
ocenka:=0;
RecN:=RecN+1;
end;
write(f,user);
closefile(f);
end;
end;
А вот то, что вызывает "подвисание" всего проекта(сам вывод в стрингрид):procedure TForm4.Button1Click(Sender: TObject);
begin
AssignFile(f, "c:\kurs\users.db");
Reset(f);
if FileSize(f) <> 0 then
begin
While Not EOF(f) do
begin
Read(f, user);
if user.RecN >= 1 then
begin
Stringgrid1.Cells[0, user.RecN] := user.Imya;
Stringgrid1.Cells[1, user.RecN] := user.fam;
Stringgrid1.Cells[2, user.RecN] := user.otch;
Stringgrid1.Cells[3, user.RecN] := user.gr;
Stringgrid1.Cells[4, user.RecN] := inttostr(user.ocenka);
end;
end;
CloseFile(f);
end;
end;
Подскажите, пожалуйста, что не так, или совсем не так...
← →
Чародей © (2006-03-23 19:43) [1]В файле было бы неплохо хранить, число записей.
> Stringgrid1.Cells[0, user.RecN]
Может писать в не существующую cell
← →
VAZMan © (2006-03-23 19:47) [2]
> В файле было бы неплохо хранить, число записей.
так я это я пытался сделать ---> RecN, я это сделал не правильно?
← →
Чародей © (2006-03-23 19:56) [3]RecN - это порядковый номер, а по совтместительсву ты его используешь как колочестово записей. А что произойдет если запись из середины удалить, весь массив перелопачивать??
> if filesize(f)=0
> then begin
> read(f, user);
> user.RecN :=1;
> end
А это уже не понятно. Если файл 0, что ты и него читаешь? А для else RecN получется не инициализированным. Скажи словами что должна делать:
> procedure TReg.Button1Click(Sender: TObject);
← →
VAZMan © (2006-03-23 20:08) [4]
> procedure TReg.Button1Click(Sender: TObject);
должна произойти просто запись данных о пользователе
← →
EvS © (2006-03-23 20:35) [5]> В файле было бы неплохо хранить, число записей.
>так я это я пытался сделать ---> RecN, я это сделал не правильно?
А как ты определяешь, что у тебя кол-во строк в таблице не меньше чем RecN?
← →
Чародей © (2006-03-23 20:38) [6]user локальная при вызове TReg.Button1Click, она имеет произвольное значение. Прогони в отладчике обе процедуры и сам поймеш.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.04.09;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.576 c