Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.10.21;
Скачать: [xml.tar.bz2];

Вниз

Access voltation   Найти похожие ветки 

 
F@T@L_Err0r   (2007-09-21 16:05) [0]

Здрасте всем.Кто нить подскажите плиз ответ на такой вопрос:я создал 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);


 
Сергей М. ©   (2007-09-21 16:07) [1]

Где объявление типа структуры и самой структуры ?


 
F@T@L_Err0r   (2007-09-21 16:08) [2]

вот:
  Rep=Record
  num:string[5];
  name:string[25];
  tel1:string[10];
  tel2:string[15];
  email:string[25];
  comment:String[100];
 end;


 
Сергей М. ©   (2007-09-21 16:11) [3]

TRep = packed Record
..
end;

Это собственно объявление типа, как оно должно правильно выглядеть.

А где собственно переменная этого типа объявлена ?


 
F@T@L_Err0r   (2007-09-21 16:12) [4]

Вот полный код :
procedure TForm1.FormCreate(Sender: TObject);
var r:File of Rep;
   rr:Rep;
begin
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);
end;


 
Сергей М. ©   (2007-09-21 16:14) [5]


> F@T@L_Err0r   (21.09.07 16:12) [4]


Замечательно.

Теперь пробуй этот код с учетом коррекции объявления типа в [3]


 
F@T@L_Err0r   (2007-09-21 16:16) [6]

Не фурычит :( ?????


 
Плохиш ©   (2007-09-21 16:17) [7]


> Сергей М. ©   (21.09.07 16:14) [5]

Дорожка ведёт в никуда, у него просто эта его l не создана или не настроена ;-)


 
Ega23 ©   (2007-09-21 16:18) [8]

Что такое l?


 
F@T@L_Err0r   (2007-09-21 16:19) [9]

public
   { Public declarations }
   l:TListItem;
 end;


 
Сергей М. ©   (2007-09-21 16:19) [10]

Прямо так и говорит - "не фурычу" ?


 
Сергей М. ©   (2007-09-21 16:21) [11]


> F@T@L_Err0r   (21.09.07 16:19) [9]


Ну и где код инициализации поля l ?


 
F@T@L_Err0r   (2007-09-21 16:21) [12]

Access voltation at address...


 
Ega23 ©   (2007-09-21 16:21) [13]

А ты этот TListItem создал?


 
Ega23 ©   (2007-09-21 16:22) [14]


> Access voltation at address...


:)))))

Милый мой, это не код инициализации..  :)
Это последствия отсутствия такого кода


 
F@T@L_Err0r   (2007-09-21 16:22) [15]

В смысле??? обьявил и все.


 
Ega23 ©   (2007-09-21 16:23) [16]


> В смысле??? обьявил и все.


Берём книгу и начинаем читать про объекты, конструкторы объектов, зачем они нужны и т.д.


 
Сергей М. ©   (2007-09-21 16:24) [17]


> F@T@L_Err0r   (21.09.07 16:22) [15]


Ну, положим, оттого что ты публично объявил свой гараж помещением для хранения своего авто, это самое авто там само по себе не появится, согласен ?)


 
F@T@L_Err0r   (2007-09-21 16:24) [18]

l := TListItem.Create()??? так???


 
Плохиш ©   (2007-09-21 16:24) [19]


> Ega23 ©   (21.09.07 16:23) [16]

Не царское это дело...


 
Сергей М. ©   (2007-09-21 16:25) [20]


> так?


Можно и так.


 
Ega23 ©   (2007-09-21 16:25) [21]


> l := TListItem.Create()??? так???


О! Он не безнадёжен!
Именно так.
И Free потом.


 
F@T@L_Err0r   (2007-09-21 16:26) [22]

а какие тут нада параметры?


 
Сергей М. ©   (2007-09-21 16:27) [23]

ListView.Items


 
F@T@L_Err0r   (2007-09-21 16:28) [24]

ошибка исчезла но listview пустой!


 
Сергей М. ©   (2007-09-21 16:29) [25]

At runtime, use the Add method of the TListItems object to create a list item and add it to the list view


 
Anatoly Podgoretsky ©   (2007-09-21 16:31) [26]

> F@T@L_Err0r  (21.09.2007 16:19:09)  [9]

Это не объявление, а какой то огрызок и не приведено создание ни объекта ни субконтейнера


 
F@T@L_Err0r   (2007-09-21 16:34) [27]

Может я неправилино сохраняю:
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;


 
Сергей М. ©   (2007-09-21 16:38) [28]


> F@T@L_Err0r   (21.09.07 16:34) [27]


Конечно неправильно)

Ты сохрянаешь мусор.

Ну вот ты подумай головой, откуда в переменной rr (которую ты настырно пихаешь в файл ListView1.Items.Count раз) что-то появится, если ты сам туда ничего не положишь ?)


 
F@T@L_Err0r   (2007-09-21 16:41) [29]

А так???
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;


 
Anatoly Podgoretsky ©   (2007-09-21 16:47) [30]

> F@T@L_Err0r  (21.09.2007 16:41:29)  [29]

Это ты должен сказать, так или не так


 
F@T@L_Err0r   (2007-09-21 16:49) [31]

блин, ошибку выдает на  rr.name := ListView1.Items[q].SubItems.Text;


 
Сергей М. ©   (2007-09-21 16:51) [32]

И так неправильно)

Не проще ли бросить метод тыка и сохранить ListView одним махом - FileStream.WriteComponent(ListView) ? А потом одним же махом и восстановить - FileStream.ReadComponent(ListView) ?


 
F@T@L_Err0r   (2007-09-21 16:59) [33]

а как связать переменную которую я буду писать в файл с FileStream.ReadComponent(ListView)?


 
Сергей М. ©   (2007-09-21 17:08) [34]

Не надо никого "вязать" ?

Создаешь объект типа TFileStream и вызываешь упомянутые выше его методы - они - эт двое из ларца - сами все сделают за тебя.)

А ты тем тем временем успеешь какой-нибудь букварь поумнее пор Делфи почитать)


 
F@T@L_Err0r   (2007-09-21 17:23) [35]

rr:= FileStream.WriteComponent(ListView1);
пишет что:incompatible types Rep and procedure untypet pointer or untipet parameter.


 
Leonid Troyanovsky ©   (2007-09-21 17:32) [36]


> F@T@L_Err0r   (21.09.07 17:23) [35]

Бесплатный совет:
Выделяешь нужную строку(и) в окне Messages и жмешь Ctrl-C
с последующим вставлением в нужное место.

Супербонус: можно там же жамкнуть F1.

--
Regards, LVT.


 
Сергей М. ©   (2007-09-21 18:32) [37]


> F@T@L_Err0r   (21.09.07 17:23) [35]
> rr:= FileStream.WriteComponent(ListView1);


Ты сам-понял, что ты тут понаписал ?)


 
Плохиш ©   (2007-09-21 18:34) [38]


> Ega23 ©   (21.09.07 16:25) [21]
> О! Он не безнадёжен!

Олег - ты не прав!


 
Dimaxx ©   (2007-09-23 09:24) [39]

2 F@T@L_Err0r: Начни с чего-нибудь попроще - например, с Hello World! Все твои попытки напоминают тыкание пальцем в небо - авось попаду.


 
{RASkov} ©   (2007-09-23 13:31) [40]

> F@T@L_Err0r

А ты ник наверное не выбирал, он - ник, сам тебя выбрал
:о)
Сорри... но по делу тут трудно чего либо посоветовать...
Ты не думаешь над советами, и не хочешь понимать их, а тупо пишешь их и потом делаешь вид невинного мальчика...



Страницы: 1 2 вся ветка

Форум: "Начинающим";
Текущий архив: 2007.10.21;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.53 MB
Время: 5.376 c
2-1190627331
АндрейК
2007-09-24 13:48
2007.10.21
множественный выбор в DBGrid


2-1190864983
DevilDevil
2007-09-27 07:49
2007.10.21
Hint в произвольном месте. Помогите пожалуйста.


1-1186147631
Apachi
2007-08-03 17:27
2007.10.21
Как при создании своего компонента переопределить событие


2-1190641305
Terc
2007-09-24 17:41
2007.10.21
дяденки Не посылайте меня HTML


15-1190304543
Yegorchic
2007-09-20 20:09
2007.10.21
Недопустимое разрешение





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский