![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Access voltation [D7, WinXP]
F@T@L_Err0r © (2007-09-21 16:05:00)Здрасте всем.Кто нить подскажите плиз ответ на такой вопрос:я создал record сохранил в етой структуре файл - все ок.Но как только пытаюсь прочитать из него вылазит error:Access voltation и т.д. вот код:
Assignfile(r,ExtractFilePath(Application.ExeName)+'data.dat');
reset(r);
while not eof(r) do
read(r,rr);
l.Caption :=rr.num; \\в етой срочке вылозит еррор...
l.SubItems.Add(rr.name);
l.SubItems.Add(rr.tel1);
l.SubItems.Add(rr.tel2);
l.SubItems.Add(rr.email);
l.SubItems.Add(rr.comment);
closefile(r);
icWasya (2007-10-01 16:26:00) [1]А тело цикла не забыть заключить в Begin/End
Игорь Шевченко (2007-10-01 15:41:00) [2]А если убрать @ из ника ?
Sairex (2007-10-01 15:38:00) [3]Безнадежно...
Из того что я прочитал нифига не понял.
Если он создает форму и пишет туды с ListBox'a (наверно еще и пустого), то в полне ничего у него не выйдет. да и с типом у него будут не соответствия.
{RASkov} (2007-09-23 13:31:00) [4]> F@T@L_Err0r
А ты ник наверное не выбирал, он - ник, сам тебя выбрал
:о)
Сорри... но по делу тут трудно чего либо посоветовать...
Ты не думаешь над советами, и не хочешь понимать их, а тупо пишешь их и потом делаешь вид невинного мальчика...
Dimaxx (2007-09-23 09:24:00) [5]2 F@T@L_Err0r: Начни с чего-нибудь попроще - например, с Hello World! Все твои попытки напоминают тыкание пальцем в небо - авось попаду.
Плохиш (2007-09-21 18:34:00) [6]
> Ega23 © (21.09.07 16:25) [21]
> О! Он не безнадёжен!
Олег - ты не прав!
Сергей М. (2007-09-21 18:32:00) [7]
> F@T@L_Err0r (21.09.07 17:23) [35]
> rr:= FileStream.WriteComponent(ListView1);
Ты сам-понял, что ты тут понаписал ?)
Leonid Troyanovsky (2007-09-21 17:32:00) [8]
> F@T@L_Err0r (21.09.07 17:23) [35]
Бесплатный совет:
Выделяешь нужную строку(и) в окне Messages и жмешь Ctrl-C
с последующим вставлением в нужное место.
Супербонус: можно там же жамкнуть F1.
--
Regards, LVT.
F@T@L_Err0r (2007-09-21 17:23:00) [9]rr:= FileStream.WriteComponent(ListView1);
пишет что:incompatible types Rep and procedure untypet pointer or untipet parameter.
Сергей М. (2007-09-21 17:08:00) [10]Не надо никого "вязать" ?
Создаешь объект типа TFileStream и вызываешь упомянутые выше его методы - они - эт двое из ларца - сами все сделают за тебя.)
А ты тем тем временем успеешь какой-нибудь букварь поумнее пор Делфи почитать)
F@T@L_Err0r (2007-09-21 16:59:00) [11]а как связать переменную которую я буду писать в файл с FileStream.ReadComponent(ListView)?
Сергей М. (2007-09-21 16:51:00) [12]И так неправильно)
Не проще ли бросить метод тыка и сохранить ListView одним махом - FileStream.WriteComponent(ListView) ? А потом одним же махом и восстановить - FileStream.ReadComponent(ListView) ?
F@T@L_Err0r (2007-09-21 16:49:00) [13]блин, ошибку выдает на rr.name := ListView1.Items[q].SubItems.Text;
Anatoly Podgoretsky (2007-09-21 16:47:00) [14]> F@T@L_Err0r (21.09.2007 16:41:29) [29]
Это ты должен сказать, так или не так
F@T@L_Err0r (2007-09-21 16:41:00) [15]А так???
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var r: file of Rep;
rr:rep;
q:integer;
begin
Assignfile(r,ExtractFilePath(Application.ExeName)+'data.dat');
rewrite(r);
for q:=0 to ListView1.Items.Count-1 do
rr.num := ListView1.Items[q].Caption;
rr.name := ListView1.Items[q].SubItems.Text;
rr.tel1 := ListView1.Items[q].SubItems.Text;
rr.tel2 := ListView1.Items[q].SubItems.Text;
rr.email := ListView1.Items[q].SubItems.Text;
rr.comment := ListView1.Items[q].SubItems.Text;
write(r,rr);
closefile(r);
end;
Сергей М. (2007-09-21 16:38:00) [16]
> F@T@L_Err0r (21.09.07 16:34) [27]
Конечно неправильно)
Ты сохрянаешь мусор.
Ну вот ты подумай головой, откудав переменной rr (которую ты настырно пихаешь в файл ListView1.Items.Count раз) что-то появится, если ты сам туда ничего не положишь ?)
F@T@L_Err0r (2007-09-21 16:34:00) [17]Может я неправилино сохраняю:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var r: file of Rep;
rr:rep;
q:integer;
begin
Assignfile(r,ExtractFilePath(Application.ExeName)+'data.dat');
rewrite(r);
for q:=0 to ListView1.Items.Count-1 do
write(r,rr);
closefile(r);
end;
Anatoly Podgoretsky (2007-09-21 16:31:00) [18]> F@T@L_Err0r (21.09.2007 16:19:09) [9]
Это не объявление, а какой то огрызок и не приведено создание ни объекта ни субконтейнера
Сергей М. (2007-09-21 16:29:00) [19]At runtime, use the Add method of the TListItems object to create a list item and add it to the list view
F@T@L_Err0r (2007-09-21 16:28:00) [20]ошибка исчезла но listview пустой!