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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.06.2010, 20:45   #1
Driver_09
Пользователь
 
Регистрация: 11.10.2009
Сообщений: 61
По умолчанию

Нужно найти всех людей, которые живут за пределами пермского края, то есть не 59 регион.
Когда запустите файл, программа выведет ошибку и укажет место где она застопорилась, может кто-то скажет в чём проблема?
P.s. запустите прогу, выберите открыть файл в формате хмл из архива
ещё там подкл. дополнит модуль stack, но там всё верно...

а за сколько бы Вы обработали xml-файл и сделали задание?
просто интересно
Вложения
Тип файла: rar курсовая.rar (252.9 Кб, 20 просмотров)
Тип файла: rar файл.rar (10.1 Кб, 21 просмотров)

Последний раз редактировалось Stilet; 02.06.2010 в 10:35.
Driver_09 вне форума Ответить с цитированием
Старый 02.06.2010, 00:02   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ну не знаю... рублей за 200...

а так
1) код жутчайший.. шаг вправо, шаг влево - расстрел!

2)
для отладки рекомендую проходить пошагово.
добавив в нужные места (это после всех ваших pop_node / read_node / FindNode)
Код:
  s := iNode.GetNodeName;
  if s <> '' then Memo1.Lines.Append(s);
добавьте в Watches
iNode
iNode.NodeValue
s

и пошагам смотрите, что происходит..

а вот Ваш проблемный кусок кода
(вроде работает, но не поручусь, что в стеке не остаётся ничего лишнего...)

Код:
  iNode:=iNode.ChildNodes.FindNode('Имя'); //ищем имя
  mn.i:=iNode.NodeValue;      // имя тоже, обязательное поле
  iNode:=read_node();      //Переходим К "ФИО"

  iNode:=iNode.ChildNodes.FindNode('Отчество'); //ищем "Отчество"
  if (iNode<>nil) then                 //поле отчество - не обязательное
    mn.o:=is_null(iNode.NodeValue,'')     //если оно есть, записываем его
  else                                 //иначе записываем
    mn.o:='';                             //пустую строку

  s := iNode.GetNodeName;
  iNode:=pop_node();   //Переходим К "ФИО"
  iNode := read_node();  //Считываем "ПолучДох"

 push_node(iNode);
 iNode := iNode.ChildNodes.FindNode('АдрМЖРФ');
 if Assigned(iNode) then begin
      //код региона
      iNode:=iNode.ChildNodes.FindNode('КодРегион');
      if Assigned(iNode) then
        if (iNode.NodeValue <> '59') then
           cnt_usl:=cnt_usl+1;
 end;
 iNode:=pop_node();

  iNode:=iNode.ChildNodes.FindNode('ДатаРожд'); //ищем дату рождения
ни выше/ни ниже ничего не менял...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.06.2010, 10:49   #3
Driver_09
Пользователь
 
Регистрация: 11.10.2009
Сообщений: 61
По умолчанию

Serge_Bliznykov, а вы без стека сможете помочь?
то есть описать таблицу, столбики(это даже у меня есть), а далее процедуру, которая обрабатывает файл. то есть там наверно придется каждый узел прописывать...

а можно как-то использовать StrToInt?
то есть чтобы мне строку в число перевелось и я бы сравнил?

Последний раз редактировалось Stilet; 02.06.2010 в 11:30.
Driver_09 вне форума Ответить с цитированием
Старый 02.06.2010, 11:53   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Driver_09
а вы без стека сможете помочь?
1) а я разве Вам уже не помог?!!! Ведь считаются люди, которые находятся не в том регионе... Добавьте их отображение в грид и всё..
2) или Вы хотите, чтобы я всё за Вас сделал?!

Цитата:
можно как-то использовать StrToInt?
можно... используйте... а в чём вопрос заключается?!
if StrToInt(СтрокаСЧислом)<>59 then...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.06.2010, 13:04   #5
Driver_09
Пользователь
 
Регистрация: 11.10.2009
Сообщений: 61
По умолчанию

if StrToInt(СтрокаСЧислом)<>59 then не работает, либо я неправильно условие делаю...
Цитата:
добавьте в Watches
iNode
iNode.NodeValue
s
а вот этот момент не понял...поэтому далее прога не идет.
Driver_09 вне форума Ответить с цитированием
Старый 02.06.2010, 13:59   #6
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию

Цитата:
if StrToInt(СтрокаСЧислом)<>59 then не работает
строка точно с числом?
вместо чего ты это условие применяешь?
против абортов=за + жизнь;.фкн вгу;_______________________мойблг
vedro-compota вне форума Ответить с цитированием
Старый 02.06.2010, 17:40   #7
Driver_09
Пользователь
 
Регистрация: 11.10.2009
Сообщений: 61
По умолчанию

vedro-compota, вот строчка в файле:
Цитата:
<КодРегион>59</КодРегион> .
а второй вопрос немного не понял.
я туда пытаюсь написать типа "если значение узла не 59, то считать его"
Driver_09 вне форума Ответить с цитированием
Старый 02.06.2010, 18:40   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

1) я в пост #2 выложил исправленный кусок кода.
Если им заменить аналогичный кусок кода Вышей программы, которыю Вы положили в архиве в пост#1
то программа будет работать и считать людей, у которых регион не равен 59

2) по поводу StrToInt(СтрокаСЧислом)
Посмотрите, какой регион, например у
<Фамилия>Зуев</Фамилия>
<Имя>Андрей</Имя>
<Отчество>Николаевич</Отчество>

там его вообще нет!
а StrToInt не будет работать с пустой строкой...

p.s. да.. такими темпами я сомневаюсь, что Вы закончите программу
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.06.2010, 18:51   #9
Driver_09
Пользователь
 
Регистрация: 11.10.2009
Сообщений: 61
По умолчанию

ну да, я долго соображаю.
ну я посмотрю, оказывается даже региона нет...
Driver_09 вне форума Ответить с цитированием
Старый 02.06.2010, 18:59   #10
Driver_09
Пользователь
 
Регистрация: 11.10.2009
Сообщений: 61
По умолчанию

спасибо, код ваш работает, но в таблицу не выводит...
сейчас попробую подумать над этим
Driver_09 вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ошибка в выводе данных поиска bloger PHP 1 10.03.2010 17:07
(Delphi)stringgrid раскраска ячейки ошибка zoza1 Помощь студентам 1 17.02.2010 19:28
Ошибка при выводе инфо из БД Xeon332 PHP 4 30.12.2009 05:41
Ошибка при обработке StringGrid + использование XPManifest noname_06 Общие вопросы Delphi 3 18.01.2009 20:52