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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #16  
Старый 03.01.2008, 17:13
Rosenkrantz Rosenkrantz вне форума
Активный
 
Регистрация: 04.12.2007
Адрес: Москва
Сообщения: 234
Версия Delphi: Delphi 7
Репутация: 40
По умолчанию

Держите полный проект (D2007).
Вложения
Тип файла: zip project.zip (5.1 Кбайт, 15 просмотров)
Ответить с цитированием
  #17  
Старый 03.01.2008, 17:26
Аватар для Oleg
Oleg Oleg вне форума
Активный
 
Регистрация: 29.11.2007
Адрес: Оренбургская обл., Россия
Сообщения: 261
Репутация: 15
Злость Нажимаю на кнопку

И Выдает ошибку(!такую-же но бывет и с другими числами !) !!!! Что-же теперь делать, у меня Delphi 7 !
Неужели это конец ?!

Последний раз редактировалось Oleg, 03.01.2008 в 17:43.
Ответить с цитированием
  #18  
Старый 03.01.2008, 17:28
Аватар для Oleg
Oleg Oleg вне форума
Активный
 
Регистрация: 29.11.2007
Адрес: Оренбургская обл., Россия
Сообщения: 261
Репутация: 15
Печаль

У меня есть RADStudio_2007_Lite(какая-то порезанная версия ???), ~91.9 mb. Может что подскажете, хотелось бы на основе Delphi 7
Ответить с цитированием
  #19  
Старый 03.01.2008, 17:41
Аватар для Oleg
Oleg Oleg вне форума
Активный
 
Регистрация: 29.11.2007
Адрес: Оренбургская обл., Россия
Сообщения: 261
Репутация: 15
Печаль

И в ошибке он показывает строку
Код:
Nodes     := XML.DocumentElement.ChildNodes;
Ответить с цитированием
  #20  
Старый 03.01.2008, 17:50
Аватар для Oleg
Oleg Oleg вне форума
Активный
 
Регистрация: 29.11.2007
Адрес: Оренбургская обл., Россия
Сообщения: 261
Репутация: 15
Сообщение

Жду ответа и очень надеюсь на рациональное решение
Если у кого-то есть ссылка на полну Delphi 2007, дайте плизз.

Последний раз редактировалось Oleg, 03.01.2008 в 17:56.
Ответить с цитированием
  #21  
Старый 03.01.2008, 17:56
Rosenkrantz Rosenkrantz вне форума
Активный
 
Регистрация: 04.12.2007
Адрес: Москва
Сообщения: 234
Версия Delphi: Delphi 7
Репутация: 40
По умолчанию

Цитата:
Сообщение от Oleg
И Выдает ошибку(такую-же) !!!! Что-же теперь делать, у меня Delphi 7 !
Неужели это конец ?!
Проект для D7. Заменил TXMLDocument на интерфейс.
Вложения
Тип файла: zip projectD7.zip (4.3 Кбайт, 23 просмотров)
Ответить с цитированием
  #22  
Старый 03.01.2008, 18:07
Аватар для Oleg
Oleg Oleg вне форума
Активный
 
Регистрация: 29.11.2007
Адрес: Оренбургская обл., Россия
Сообщения: 261
Репутация: 15
Хорошо Спасибо большое !!!

Вот спасибо вам огромное за помощь !!!
Буду разбираться, хорошо, что есть такие люди, которые всегда помогут!
. Попытаюсь разобраться в остальных пунктах моего вопроса сам, можно если что-то не получится я ещё раз обращусь за помощью.
Респект таким людям !
Ответить с цитированием
  #23  
Старый 03.01.2008, 18:16
Rosenkrantz Rosenkrantz вне форума
Активный
 
Регистрация: 04.12.2007
Адрес: Москва
Сообщения: 234
Версия Delphi: Delphi 7
Репутация: 40
По умолчанию

Не за что, мне самому интересно было поразбираться. Я, честно говоря, сегодня впервые работал с XML. Обращайтесь.
Ответить с цитированием
  #24  
Старый 03.01.2008, 18:45
Аватар для Oleg
Oleg Oleg вне форума
Активный
 
Регистрация: 29.11.2007
Адрес: Оренбургская обл., Россия
Сообщения: 261
Репутация: 15
Вопрос Вопрос

Вот я решил организовать работу по выводу всех t id в функции, как мне лучше вернуть результат. Ведь в массиве строк нельзя ? Как лучше(по типу String). Чтобы каждое значение было как бы в одной строке ? Подскажите
Код:
function GetTidForPage(XML:IXMLDocument;page:integer):string;
var
  Nodes     : IXMLNodeList;
  PageNode,
  ChildNode : IXMLNode;
  s             :String;
begin
  s:='';
  if XML = nil then Result:='Error: File Not Found';
  try
    Nodes     := XML.DocumentElement.ChildNodes;
    PageNode  := Nodes.FindNode('page');
    while (PageNode <> nil) do
      if (PageNode.NodeName <> 'page') or (PageNode.Attributes['id'] <> page) then
        PageNode := PageNode.NextSibling
      else
        break;
    if PageNode <> nil then begin
      Nodes     := PageNode.ChildNodes;
      ChildNode := Nodes.First;
      while ChildNode <> nil do begin
       s:=s+ChildNode.Text;
      ChildNode := ChildNode.NextSibling;
      end;
    end;
    finally
    XML := nil;
    Result:=s;
  end;
end;
Ответить с цитированием
  #25  
Старый 04.01.2008, 11:00
Rosenkrantz Rosenkrantz вне форума
Активный
 
Регистрация: 04.12.2007
Адрес: Москва
Сообщения: 234
Версия Delphi: Delphi 7
Репутация: 40
Сообщение

Код:
function GetTidForPage(XML:IXMLDocument;page:integer):TStringList;:string;
var
  Nodes     : IXMLNodeList;
  PageNode,
  ChildNode : IXMLNode;
  s             :String;
  SList: TStringList;
begin
  s:='';SList := TStringList.Create;
  if XML = nil then Result:='Error: File Not Found';
  try
    Nodes     := XML.DocumentElement.ChildNodes;
    PageNode  := Nodes.FindNode('page');
    while (PageNode <> nil) do
      if (PageNode.NodeName <> 'page') or (PageNode.Attributes['id'] <> page) then
        PageNode := PageNode.NextSibling
      else
        break;
    if PageNode <> nil then begin
      Nodes     := PageNode.ChildNodes;
      ChildNode := Nodes.First;
      while ChildNode <> nil do begin
       s:=s+ChildNode.Text;
       SList.Add(ChildNode.Text); 
      ChildNode := ChildNode.NextSibling;
      end;
    end;
    finally
    XML := nil;
    Result:=s;SList;
  end;
end;
Дальше с этим списком работаем по индексам, например так:
Код:
var
  SL: TStringList;
begin
  SL := GetTidForPage(XML, 1);
  RichEdit1.Lines.Add(SL[0]);
  ...
Не забудьте после обработки список уничтожить:
Код:
SL.Free;
Ответить с цитированием
  #26  
Старый 04.01.2008, 11:10
Аватар для Oleg
Oleg Oleg вне форума
Активный
 
Регистрация: 29.11.2007
Адрес: Оренбургская обл., Россия
Сообщения: 261
Репутация: 15
Хорошо Спасибо

Спасибо за пример, учту
Ответить с цитированием
  #27  
Старый 04.01.2008, 14:52
Аватар для Oleg
Oleg Oleg вне форума
Активный
 
Регистрация: 29.11.2007
Адрес: Оренбургская обл., Россия
Сообщения: 261
Репутация: 15
Вопрос Помогите написать функцию

Что-то не получается написать функцию, которая будет добавлять на заданный "page" новый "t id"
Что-то типа
Код:
function CreateTid(XML:IXMLDocument;page,Tid:integer):boolean;
И следствие(пока ещё не пробовал) как создать свою "page" типа:
Код:
function CreatePage(XML:IXMLDocument;page:integer):boolean;
Ответить с цитированием
  #28  
Старый 04.01.2008, 15:03
Аватар для Oleg
Oleg Oleg вне форума
Активный
 
Регистрация: 29.11.2007
Адрес: Оренбургская обл., Россия
Сообщения: 261
Репутация: 15
Счастье Всё !

Всё, помощь не нужна, я написал функцию.
Ответить с цитированием
  #29  
Старый 04.01.2008, 15:26
Аватар для Oleg
Oleg Oleg вне форума
Активный
 
Регистрация: 29.11.2007
Адрес: Оренбургская обл., Россия
Сообщения: 261
Репутация: 15
Печаль Помогите

.................

Последний раз редактировалось Oleg, 04.01.2008 в 23:11.
Ответить с цитированием
  #30  
Старый 04.01.2008, 16:18
Аватар для Oleg
Oleg Oleg вне форума
Активный
 
Регистрация: 29.11.2007
Адрес: Оренбургская обл., Россия
Сообщения: 261
Репутация: 15
Вопрос Ещё вопрос

Могу ли я вынести свои функции в отдельный Unit.
Я создаю новый Unit, обзываю его например "proc", кладу туда все мои функции, затем этот Unit "proc" кладу в папку с программой, которая вызывает эти функции, предварительно добавив в uses программы proc.
Что я делааю не так(и в uses Unit добавлял uses, которые были в программе для этих функций) ?
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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