![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#16
|
|||
|
|||
|
Держите полный проект (D2007).
|
|
#17
|
||||
|
||||
|
И Выдает ошибку(!такую-же но бывет и с другими числами !) !!!! Что-же теперь делать, у меня Delphi 7 !
![]() ![]() ![]() Неужели это конец ?! Последний раз редактировалось Oleg, 03.01.2008 в 17:43. |
|
#18
|
||||
|
||||
|
У меня есть RADStudio_2007_Lite(какая-то порезанная версия ???), ~91.9 mb. Может что подскажете, хотелось бы на основе Delphi 7
![]() |
|
#19
|
||||
|
||||
|
И в ошибке он показывает строку
Код:
Nodes := XML.DocumentElement.ChildNodes; |
|
#20
|
||||
|
||||
|
Жду ответа и очень надеюсь на рациональное решение
![]() Если у кого-то есть ссылка на полну Delphi 2007, дайте плизз. Последний раз редактировалось Oleg, 03.01.2008 в 17:56. |
|
#21
|
|||
|
|||
|
Цитата:
|
|
#22
|
||||
|
||||
|
Вот спасибо вам огромное за помощь !!!
Буду разбираться, хорошо, что есть такие люди, которые всегда помогут! . Попытаюсь разобраться в остальных пунктах моего вопроса сам, можно если что-то не получится я ещё раз обращусь за помощью.Респект таким людям ! |
|
#23
|
|||
|
|||
|
Не за что, мне самому интересно было поразбираться. Я, честно говоря, сегодня впервые работал с XML. Обращайтесь.
|
|
#24
|
||||
|
||||
|
Вот я решил организовать работу по выводу всех 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
|
|||
|
|||
|
Код:
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
|
||||
|
||||
|
Спасибо за пример, учту
![]() |
|
#27
|
||||
|
||||
|
Что-то не получается написать функцию, которая будет добавлять на заданный "page" новый "t id"
Что-то типа Код:
function CreateTid(XML:IXMLDocument;page,Tid:integer):boolean; Код:
function CreatePage(XML:IXMLDocument;page:integer):boolean; |
|
#28
|
||||
|
||||
|
Всё, помощь не нужна, я написал функцию.
![]() |
|
#29
|
||||
|
||||
|
.................
Последний раз редактировалось Oleg, 04.01.2008 в 23:11. |
|
#30
|
||||
|
||||
|
Могу ли я вынести свои функции в отдельный Unit.
Я создаю новый Unit, обзываю его например "proc", кладу туда все мои функции, затем этот Unit "proc" кладу в папку с программой, которая вызывает эти функции, предварительно добавив в uses программы proc. Что я делааю не так(и в uses Unit добавлял uses, которые были в программе для этих функций) ? ![]() |