Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.05.05;
Скачать: CL | DM;

Вниз

Сравнение строк, передаваемых в качестве параметров в функцию   Найти похожие ветки 

 
Nomad   (2003-04-22 12:22) [0]

Уважаемые господа, возникает проблема: при передаче строки в функцию (string) и при сравнении ее с другими string, компилятор не ставит точки останова на блок после сравнения.

type StrArr= array of string;
procedure Proc1(ar:StrArr)
....
if str=arr[i] then
begin
сюда не заходит
end;
.....


В одном случае помог Trim, в другом не получилось. В чем дело? Пробовал функцию CompareStr, тоже не помогло. Откуда компилятор знает, что результат сравнения заведомо ложен? Что можно сделать?


 
VaS ©   (2003-04-22 12:28) [1]

Код покажи целиком


 
Карелин Артем ©   (2003-04-22 12:55) [2]

str - это имя переменной, или стандартная функция дельфи?


 
Anatoly Podgoretsky ©   (2003-04-22 13:09) [3]

Переменная, иначе бы компилятор сильно отругал


 
Radionov Alexey ©   (2003-04-22 13:12) [4]

а оно (proc1) где-то реально вызывается?


 
Anatoly Podgoretsky ©   (2003-04-22 13:34) [5]

А на if str=arr[i] и в других местах есть точки?


 
Bel ©   (2003-04-22 13:38) [6]

А что значит "не ставит точки останова"? Не может поставить красную точку на поле слева, или не останавливается во время работы программы на поставленной точке останова?


 
Nomad   (2003-04-22 14:24) [7]

Похоже я разобрался - дело было в том, что команда, идущая после if не имела смысла (в блоке был только continue) и оптимизатор не компилировал ее. Исправил и заработало.
И все-таки непонятно почему до этого у меня не получалось сравнивать (оптимизатор заранее проверял условие и не компилировал код после него) две переменных типа string причем одинаковой длины, пока я не обрезал пробелы ф-цией Trim.
Хочу однако сделать одно замечание: строку, которую я передавал в ф-цию Proc1 я получал: string(TTreeNode.Data^). Может это как-то влияет на сравниваемость?


 
Skier ©   (2003-04-22 14:30) [8]


> я получал: string(TTreeNode.Data^).

И ты ещё СПРАШИВАЕШЬ ?!
А скажи-ка как ты присваивал данные для узла ?

TTreeNode.Data := ?


 
Palladin ©   (2003-04-22 15:22) [9]

наверно
string(TTreeNode.Data^):=s;


 
Nomad   (2003-04-22 15:40) [10]

Добавлял не я, а в другом модуле другой человек. Кажется с помощью TTreeView.AddChildObject(..idNom), где idNom - PString. Перед этим он делал IdNom^:=ПеременнаяТипаString.
Это было из-за несоответсвия типов String и PString^?


 
Skier ©   (2003-04-22 15:41) [11]

PString(TTreeNode.Data)^ - вот это будет String


 
Palladin ©   (2003-04-22 15:46) [12]

только IdNom^ при этом один и тот же....


 
Nomad   (2003-04-22 15:48) [13]

Да, кажется откомпилировался правильно даже без Trim. Спасибо, проверю потом на функциональность. Значит приводить к типу нужно до взятия содержимого по адресу? В этом моя ошибка!


 
Skier ©   (2003-04-22 15:49) [14]

>Nomad

> Значит приводить к типу нужно до взятия содержимого по адресу?
>

В яблочко ! :)


 
Palladin ©   (2003-04-22 15:50) [15]


> Palladin © (22.04.03 15:46)

не читать, написал от невнимательности
хотя может это и правда...
код добавления надо смотреть


 
Nomad   (2003-04-22 16:10) [16]


> только IdNom^ при этом один и тот же....


С добавлением все в порядке, там idNom^ присваиваются строки из полей Query, а сам idNom присваивается TTreeView.Items.Data.
Но все равно спасибо всем за внимание!;-)))))


 
Skier ©   (2003-04-22 16:12) [17]


> а сам idNom присваивается TTreeView.Items.Data.

Вопрос на засыпку : А память выделяется ? :)


 
Nomad   (2003-04-22 16:20) [18]

Да
New(IdNom)


 
Skier ©   (2003-04-22 16:21) [19]

>Nomad
Порядок ! :)



Страницы: 1 вся ветка

Текущий архив: 2003.05.05;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.015 c
14-12914
Neft
2003-04-14 22:58
2003.05.05
Работа в Москве


1-12757
Ajax
2003-04-21 18:00
2003.05.05
Перехват сообщений для компонент


1-12688
просто Джо
2003-04-21 12:04
2003.05.05
Вот все тут спрашивают: как убрать полосу прокрутки...


1-12818
AAC
2003-04-22 14:18
2003.05.05
Как получить имя файла с перетаскиванием на форму


3-12627
User2
2003-04-14 17:15
2003.05.05
TComboBox и БД