Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Компоненты и классы
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 24.09.2012, 10:54
markl markl вне форума
Прохожий
 
Регистрация: 24.09.2012
Сообщения: 1
Репутация: 10
По умолчанию JCL сортировка XML

Уважаемые форумчане, прошу Вашей помощи!

Используя XE2 (x86) и TJclSimpleXML из библиотеки JCL ($Date:: 2012-09-04, $Rev:: 3861) пытаюсь отсортировать теги по значению их свойства (если оно есть) и получаю Invalid pointer operation.

Код:
procedure T_MainForm._Sort(Elems: TJclSimpleXMLElems);
var i : Integer;
begin
  Elems.CustomSort(CompareXMLItems);
  for i := 0 to Elems.Count-1 do
    if Elems[i].Items<>nil then
      if Elems[i].ItemCount>1 then
         _Sort(Elems[i].Items);
end;

function T_MainForm.CompareXMLItems(Elems: TJclSimpleXMLElems; Index1,  Index2: Integer): Integer;
begin
  if (Elems[Index1].Properties<>nil) and (Elems[Index2].Properties<>nil) then
    begin
      if Elems[Index1].Properties.IntValue('Id')<Elems[Index2].Properties.IntValue('Id') then Result := -1 else
      if Elems[Index1].Properties.IntValue('Id')>Elems[Index2].Properties.IntValue('Id') then Result := 1 else
                                                                                              Result := 0;
    end else Result := 0;
end;

procedure T_MainForm.Button1Click(Sender: TObject);
var fName : String;
begin
  fName := ExtractFilePath(ParamStr(0))+'entity.xml';
  xml := TJclSimpleXML.Create;
  xml.LoadFromFile(fName);
  _Sort(xml.Root.Items);
  xml.Options := xml.Options - [sxoAutoEncodeValue];
  xml.SaveToFile(fName+'.!!!.xml');
  FreeAndNil(xml);
end;

Ошибка возникает в фукнкции JclSimpleXml.QuickSort в момент переприсваивания указателей.

Помогите, пж, понять: в чём я не прав?

Полный тестовый проект в приложении.
Вложения
Тип файла: rar JCL_XML.RAR (87.0 Кбайт, 7 просмотров)
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 06:38.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter