Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Access voltation [D7, WinXP]


Страницы:   1 2 3

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 пустой!


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо