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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.06.2012, 15:13   #51
yuta_86
Пользователь
 
Регистрация: 06.12.2010
Сообщений: 99
По умолчанию

нашёл ошибку в слове ReadAttributeInteger но при запуске программы
вылетает с ошибкой на строке for i:=0 to NodeCount-1 do
yuta_86 вне форума Ответить с цитированием
Старый 21.06.2012, 15:20   #52
yuta_86
Пользователь
 
Регистрация: 06.12.2010
Сообщений: 99
По умолчанию

думаю и тут надо ставить for i:=0 to NodeList.Count-1 do
но ошибка снова
yuta_86 вне форума Ответить с цитированием
Старый 21.06.2012, 18:42   #53
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

пишу на коленке, правильное описание методов потрудитесь смотреть в справке компонента. Ошибка в слове атрибут.
Человек_Борща вне форума Ответить с цитированием
Старый 22.06.2012, 09:06   #54
yuta_86
Пользователь
 
Регистрация: 06.12.2010
Сообщений: 99
По умолчанию

код всё равно не работает
yuta_86 вне форума Ответить с цитированием
Старый 23.06.2012, 10:41   #55
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

Слова "код всё равно не работает" и аналогичные им, без архива проекта прикрепленного к посту (или нужного куска с текстом ошибки) не имеют никакого смысла, я бы удалял даже такие, ибо без телепатических способностей диалог не построится.
phomm вне форума Ответить с цитированием
Старый 23.06.2012, 11:22   #56
yuta_86
Пользователь
 
Регистрация: 06.12.2010
Сообщений: 99
По умолчанию

хорошо в понедельник пришлю проект.
yuta_86 вне форума Ответить с цитированием
Старый 23.06.2012, 14:44   #57
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

yuta_86, NativeXML и любой другой XML парсер, требуют правильного оформления XML документа. В вашем видимо нет заголовка, либо это кусок xml, что врятли.
Создайте пустой xml с пом. nativexml и возьмите оттуда заголовок.

Цитата:
вылетает с ошибкой на строке for i:=0 to NodeCount-1 do
NodeCount есть у всех TXmlNode.
Главная нить называется Root.
xml.root и поехали....

Цитата:
думаю и тут надо ставить for i:=0 to NodeList.Count-1 do
Не нужно.



Так же вы явно напираете на готовый код, и не хотите ничему учиться/разбираться. Что пичально.

Последний раз редактировалось Человек_Борща; 23.06.2012 в 14:47.
Человек_Борща вне форума Ответить с цитированием
Старый 25.06.2012, 10:02   #58
yuta_86
Пользователь
 
Регистрация: 06.12.2010
Сообщений: 99
По умолчанию

Как и обещал проект

MY NatuveXML.rar
посмотрите пожалуйста.
yuta_86 вне форума Ответить с цитированием
Старый 11.01.2013, 23:53   #59
SolovejK
Пользователь
 
Регистрация: 27.01.2010
Сообщений: 52
По умолчанию

Заношу список XML файлов в ListBox так:
Код:
procedure TForm1.Button2Click(Sender: TObject);
var
  str: string;
  sr : TSearchRec;
  FindRes, p : Integer;
begin
  ListBox1.Clear;
  FindRes := FindFirst(ExtractFilePath(Application.ExeName)+ '\XML\' + '*.xml',faAnyFile,sr); 
  While FindRes = 0 do 
    begin
      str:=sr.Name;
      p:=pos('_',str);
      delete(str,1,p);
      Delete(Str,Pos('.',Str),Length(Str));
      ListBox1.Items.Add(sr.Name);
      FindRes:=FindNext(sr); 
    end;
  FindClose(SR); 
end;
Беру нужные данные из XML файлов так:

Код:
procedure TForm1.ListBox1Click(Sender: TObject);
var
  Uzel : TXMLNode;
  i : integer;
begin
  XMLDoc := TNativeXML.Create(Self);
  XMLDoc.LoadFromFile(Listbox1.Items.Strings[ListBox1.ItemIndex]);
  XMLDoc.XmlFormat := xfReadable;
  LabeledEdit1.Text := XMLDoc.Root.ChildContainers[2].ValueUnicode;
  LabeledEdit2.Text := XMLDoc.Root.ChildContainers[7].Name;
  LabeledEdit3.Text := XMLDoc.Root.ChildContainers[7].ChildContainers[0].Name;
  ListBox2.Clear;

   Uzel := xmlDoc.Root.FindNode('ib');
   for i := 0 to Uzel.ChildContainerCount - 1 do
   begin
     Listbox2.Items.Add(Uzel.Nodes[i].Name + ' - ' + Uzel.Nodes[i].AttributeByName['name'].Value);
   end;

end;
Как видно из кода XML файлы грузятся из папки XML, которая находится рядом с экзешником.

При OnClick на ListBox, на нужном файле, XML файлы напрочь отказываются читаться и вылетает ошибка, что невозможно найти указанный файл, хотя все нашлось и сидит в ListBox.

Теперь, если эти же XML файлы дополнительно скопировать в папку с экзешником все прекрасно работает, все XML файлы читаются как надо.

Подскажите в чем моя ошибка? Почему программа пытается искать эти файлы при чтении там где расположена сама, а не в папке XML.
SolovejK вне форума Ответить с цитированием
Старый 12.01.2013, 00:06   #60
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Зачем постить свои вопросы в чужую тему? В sr.Name имя файла без пути, поэтому в текущем каталоге находит, а в подкаталоге нет
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
XML (Delphi) VadEr Помощь студентам 11 23.06.2009 23:32
xml в delphi /Arven/ Компоненты Delphi 0 23.04.2008 22:47
SQl+DELPHI+XML Рома БД в Delphi 5 17.08.2007 04:21
Xml и Delphi KlErik Общие вопросы Delphi 2 14.05.2007 09:54