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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.12.2010, 07:51   #1
Likos
 
Регистрация: 12.07.2009
Сообщений: 3
По умолчанию Проблема в Delphi 2010 с функциями работы со строками

Поставил себе Delphi 2010. Появилась задачка с парсингом html кода. И вот столкнулся с непонятной проблемой.
Код:
var j: Integer; s: String;
begin
 s := '<center>';
 j := pos('<center>', s);
Данный код в переменной j выдает не заданное число. Т.е. как j была не определенной, так и остается. Также пробовал воспользоваться функцией AnsiPos, тоже самое. В Delphi 2010 что то сменилось с этой функцией? Давно не работал в нем.
Likos вне форума Ответить с цитированием
Старый 21.12.2010, 07:57   #2
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

У Вас что-то с компилятором !
Именно то, что Вы привели нормально работает !
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Старый 21.12.2010, 08:06   #3
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

j ниже используется? Warning-и и hint-ы читали?
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 21.12.2010, 18:29   #4
Likos
 
Регистрация: 12.07.2009
Сообщений: 3
По умолчанию

Warning'ов нету, hint'ов тоже нет. Я тоже склоняюсь к проблеме самого делфи.
При трассировке кода клавишей F8:
Код:
var j: Integer; s: String;
begin
s := '<center>';
j := 0;
j := pos('<center>', s);
он проскакивает строку "j := 0;", вообще не понятно почему
Likos вне форума Ответить с цитированием
Старый 21.12.2010, 18:32   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

j используется потом?
(попробуйте добавить ShowMessage(IntToStr(j)) после парсинга)

Оптимизатор похоже режет.

если надо отключить его для функции то оберните функцию в {$O-}функция{$O+}
если директивы не путаю.

но в релизе(в итоге) советую убрать отключение оптимизации.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 21.12.2010, 19:15   #6
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Цитата:
он проскакивает строку "j := 0;", вообще не понятно почему
потому что компилятор "знает" что объявление var j: Integer; и первое же обнуление j := 0; целочисленной переменной это одно и тоже и не обрабатывает при пошаговом выполнении. Хотя если поставить брэйкпоин на этой строке - он остановится.
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Старый 21.12.2010, 19:33   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;
var j: Integer; s: String;
begin

 s := '<center>';
 j := pos('<center>', s);
write(j);
readln;
end.
Только что запустил на Д2010. Результат - 1
Верно?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.12.2010, 19:42   #8
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Цитата:
Сообщение от Likos Посмотреть сообщение
Я тоже склоняюсь к проблеме самого делфи.
Гы. А кто ещё кроме вас тут к этому склоняется?

Правило программиста №1 - сперва ищи баги у себя в голове, а уж потом вали вину на других.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с Delphi 2010 gisinfo Общие вопросы Delphi 1 05.12.2010 23:16
Текст стандартных функций и процедур для работы со строками в Delphi Pixma Помощь студентам 3 17.11.2010 13:25
Проблема с запуском Delphi 2010 zver777 Софт 5 26.09.2010 11:16
Проблема с THotKey в Delphi 2010 Altera Компоненты Delphi 8 06.01.2010 09:51