Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.01.2010, 03:10   #1
BioHEX
Пользователь
 
Аватар для BioHEX
 
Регистрация: 04.01.2010
Сообщений: 17
По умолчанию Чтение и запись параметров в xml

Доброго времени суток. Такая проблемка при чтении параметров выкидывает ошибку "access violation". Не могу врубиться в чем дело. Вот модуль для работы с xml UseXML.rar

Процедура записи:
Код:
procedure SaveOptions(FileName: String);
var
 i:Integer;
begin
 CreateXML;

 CreateNodeText('main','');
 CreateAttribute(['main'],'ver','1.2');
 CreateNodeText(['main'],'ListView1','');

 for i:=0 to ListView1.Items.Count-1 do
  begin
   CreateNodeText(['main','ListView1'],'Item'+IntToStr(i),'');
   CreateAttribute(['main','ListView1','Item'+IntToStr(i)],'Caption',ListView1.items[i].Caption);
   CreateAttribute(['main','ListView1','Item'+IntToStr(i)],'SubItem0',ListView1.items[i].SubItems.Strings[0]);
   CreateAttribute(['main','ListView1','Item'+IntToStr(i)],'SubItem1',ListView1.items[i].SubItems.Strings[1]);
   CreateAttribute(['main','ListView1','Item'+IntToStr(i)],'SubItem2',ListView1.items[i].SubItems.Strings[2]);
  end;

 SaveXML(FileName);
 DestroyXML;
end;
Процедура чтения:
Код:
procedure LoadOptions(FileName: String);
var
 i:Integer;
 ListItem:TListItem;
begin
 CreateXML;
 LoadXML(FileName);

 Label1.Caption:=IntToStr(GetNodesCount(['main','ListView1']));

 for i:=0 to GetNodesCount(['main','ListView1'])-1 do
  begin
   ListItem:=ListView1.Items.Add;
   ListItem.Caption:=GetNodeItemText(['main','ListView1','Item'+IntToStr(i)],'Caption');
   ListItem.SubItems.Add(GetNodeItemText(['main','ListView1','Item'+IntToStr(i)],'SubItem0'));
   ListItem.SubItems.Add(GetNodeItemText(['main','ListView1','Item'+IntToStr(i)],'SubItem1'));
   ListItem.SubItems.Add(GetNodeItemText(['main','ListView1','Item'+IntToStr(i)],'SubItem2'));
  end;

 DestroyXML;
end;
BioHEX вне форума Ответить с цитированием
Старый 14.01.2010, 19:24   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

А поставить бряку на строку
Код:
LoadXML(FileName);
и пройтись по шагам - религия запрещает ?
mihali4 вне форума Ответить с цитированием
Старый 15.01.2010, 04:16   #3
BioHEX
Пользователь
 
Аватар для BioHEX
 
Регистрация: 04.01.2010
Сообщений: 17
По умолчанию

О чудо, я нашёл ошибку. Восхвалим же великий отладчик. Благодарю за подсказку (ступил).
Теперь бы придумать как её исправить
BioHEX вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
чтение простейшего XML TaTT DoGG PHP 4 27.08.2009 11:44
Чтение параметров из ini файла Яр|/||< (^_^) Общие вопросы Delphi 2 29.06.2009 20:54
Чтение параметров звука mp3 и mpc файлов DOOM514 Мультимедиа в Delphi 3 30.05.2009 10:53
Запись параметров формы в БД PSix1_73 JavaScript, Ajax 3 21.05.2009 17:59
Чтение XML с помощью XPath Neymexa Общие вопросы .NET 0 14.04.2009 22:43