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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.10.2011, 12:07   #1
**Татьяна**
Пользователь
 
Регистрация: 12.02.2011
Сообщений: 41
По умолчанию нарезка xml файла

не могу разобраться в коде программыпрограмма нарезает xml файл и берет только нужное.не могу понять алгоритма,объясните!вот кусок кода:
Код:
for i:=0 to Memo1.Lines.Count-1 do
        begin
        Gauge1.Progress:=Gauge1.Progress+1;
           for j:=1 to length(memo1.Lines.Strings[i]) do
              begin
                 s:=copy(memo1.Lines.Strings[i],j,1);
                 panel1.Caption:=st; Panel1.Refresh;
                 if s='<' then
                    begin st:=''; continue; end;
                    if st='Parcel CadastralNumber="' then
                       begin fl:=0; st:='';  end;
                       if st='Ordinate X="' then
                          begin fl:=1; st:=''; st2:=''; end;
                          if st=' Y="' then begin fl:=2; st:=''; end;
                          case fl of
                             0: begin
                                if s='"' then
                                   begin fl:=100;
                                   continue; end;
                                   end;
                             1: begin
                                if (s='"')  then
                                   begin
                                      st2:=st;
                                      fl:=100;
                                      st:='';
                                      continue;
                                   end;
                                 end;
                             2: begin
                                if (s='"')  then
                                   begin
                                      if
                                         flx=0 then
                                            begin
                                               flx:=1;
                                               x0:=st2;
                                               y0:=st
                                            end else
                                               begin
                                                  flx:=0;
                                                  x1:=st2;
                                                  y1:=st;
                                                  fly:=1;
                                               end;
tati
**Татьяна** вне форума Ответить с цитированием
Старый 11.10.2011, 14:24   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

1) приведённый Вами код явно НЕ ПОЛНЫЙ!
где-то должно быть присвоение st:= .......


2)
Цитата:
не могу разобраться в коде программы
и не мудрено! очень подозреваю, что автор данного "шедевра" и сам бы уже в нём запутался...

ну, если вкратце. то похоже, что XML файл грузится просто как текстовый файл (набор строк) в обычное memo1 (скорее всего через memo1.LoadFromFile('Вашфайл.XML');
а потом построчно парсится (устанавливая в процессе разбора переменные, которые выполняют роль переключателей/флажков/семафоров).

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

Конкретно, рекомендую Вам, рассказать, что Вы хотите изменить/переделать/доделать - точнее ПОДРОБНО описать, что должна делать Ваша программа!
и, возможно, выложить проект + тестовый_файл.xml
тогда можно будет помочь Вам конкретно.
а иначе это всё лирика..
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.10.2011, 14:39   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А зачем вообще ручками парсить xml-файл? Есть TXMLDocument, с его помощью все будет красивше и быстрей
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 11.10.2011, 14:46   #4
**Татьяна**
Пользователь
 
Регистрация: 12.02.2011
Сообщений: 41
По умолчанию

в общем файл содержат кучу тегов, необходимо вытащить от туда только координаты и номер,координаты прграмма вытаскивает и отрисовывает,подключаясь к ZWCad,а вот с номером проблема.номер хранится в теге <Parcel CadastralNumber>(в xml файле).
P.S. ВСЕ ЭТО ОТНОСИТСЯ К 3-ЕЙ ФОРМЕ

скажите есть продвижения по моему вопросу???ну или хотябы пару примеров похожих скиньте плз!!!!!!!!!!
Вложения
Тип файла: rar 1.rar (1.42 Мб, 8 просмотров)
tati

Последний раз редактировалось Stilet; 13.10.2011 в 07:52.
**Татьяна** вне форума Ответить с цитированием
Старый 12.10.2011, 11:15   #5
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
у или хотябы пару примеров похожих скиньте плз!!!!!!!!!!
1 пример
2 пример
3 пример
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 12.10.2011, 12:27   #6
**Татьяна**
Пользователь
 
Регистрация: 12.02.2011
Сообщений: 41
Смущение

А может найдется добрый человечек?и посмотрит выложенный код?я просто НАЧИНАЮЩИЙ "программист" и пока видимо для меня это оч сложно!!!!!!

таких нету?да?
tati

Последний раз редактировалось Stilet; 13.10.2011 в 07:56.
**Татьяна** вне форума Ответить с цитированием
Старый 12.10.2011, 15:07   #7
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

с таким набором бессмысленных переменных в коде, я бы уже через полчаса забыл, что там вообще происходит.
Эхх студенты
Человек_Борща вне форума Ответить с цитированием
Старый 12.10.2011, 16:41   #8
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Код:
  TForm1 = class(TForm)
    Button1: TButton;
    OpenDialog1: TOpenDialog;
    XMLDocument1: TXMLDocument;
    StaticText1: TStaticText;
    StaticText2: TStaticText;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
примерно так
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  dm: IDOMElement;
  list, listord: IDOMNodeList;
  node: IXMLNode;
  j, k: integer;
  cadastr, num, ordinate: IDOMNode;
  numcadastr: string;
begin
  if not self.OpenDialog1.Execute then exit;
  XMLDocument1.LoadFromFile(self.OpenDialog1.FileName);
  dm:=XMLDocument1.DOMDocument.documentElement;
  list:=dm.getElementsByTagName('Ordinate');
  for j:=0 to list.length-1 do begin
    self.StaticText2.Caption:=format('%d / %d',[list.length, j]);
    ordinate:=list.item[j];
    cadastr:=ordinate.parentNode.parentNode.parentNode.parentNode;
    num:=cadastr.attributes.getNamedItem('CadastralNumber');
    if num<>nil then numcadastr:=num.nodeValue else numcadastr:='';
    self.StaticText1.Caption:=format('%s ',[numcadastr]);
    Application.ProcessMessages;
    sleep(50);
  end;
  self.StaticText1.Caption:='ВСЕ!';
end;
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 13.10.2011, 07:44   #9
**Татьяна**
Пользователь
 
Регистрация: 12.02.2011
Сообщений: 41
Смущение

спс ОГРОМНОЕ человеческое за код!!!а можно еще мааааааленький вопросик:мне теперь вырезанные координаты нужно передать в ZWCad,подскажите в каких переменных они хранятся????
tati
**Татьяна** вне форума Ответить с цитированием
Старый 13.10.2011, 09:06   #10
**Татьяна**
Пользователь
 
Регистрация: 12.02.2011
Сообщений: 41
По умолчанию

аааауууууууууууу!!!
tati
**Татьяна** вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
чтение из XML файла frankk WPF, UWP, WinRT, XAML 0 09.02.2011 16:42
сформировать xml-файл на основе другого xml-файла NieL Общие вопросы Delphi 2 21.12.2010 15:49
Генерация XML файла dekameron PHP 1 31.07.2010 22:17
Обработка XML-файла Driver_09 Помощь студентам 3 25.05.2010 16:38
Нарезка страницы html :) W0LF Общие вопросы Delphi 3 17.12.2009 16:21