Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.05.05;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.035 c
14-12893
Soft
2003-04-16 19:01
2003.05.05
Использование несколько цветов в тексте


1-12807
Spartak
2003-04-22 15:50
2003.05.05
Как проверить существование файла ?


6-12852
Vyacheslav
2003-03-11 21:32
2003.05.05
Работа с сетью


14-12934
EAlexander
2003-04-18 11:32
2003.05.05
Пиво


14-12900
Zmei-Gorin
2003-04-17 15:04
2003.05.05
Принцип работы FD, diff и иже с ними...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский