Форум: "Основная";
Текущий архив: 2006.08.13;
Скачать: [xml.tar.bz2];
ВнизГлюки при использовании строк Widestring в операторе IF Найти похожие ветки
← →
leonidus © (2006-07-01 22:36) [0]Мастера подскажите пожалуйста почему если я пишу:
var
EngLetters_:widestring;
...
if EngLetters_[1]+EngLetters_[2]=EngLetters_[3]+EngLetters_[4] then
...
то компилятор выдает ошибку "Incompatible types"?
← →
Шпиён (2006-07-01 22:48) [1]EngLetters_[1]+ EngLetters_[2] - а что ты здесь ожидаешь получить???
← →
Phoroon~ © (2006-07-01 22:57) [2]Сделай так:
var
EngLetters_, tmp1, tmp2: widestring;
begin
tmp1:=EngLetters_[1];
tmp1:=tmp1+EngLetters_[2];
tmp2:=EngLetters_[3];
tmp2:=tmp2+EngLetters_[4];
if tmp1=tmp2 then операции
← →
Шпиён (2006-07-01 23:12) [3]
> Phoroon~ © (01.07.06 22:57) [2]
Можно просто сделать приведение типов
widestring(EngLetters_[1]) + widestring(EngLetters_[2])
← →
palva © (2006-07-01 23:21) [4]Тогда уж
if (EngLetters_[1]=EngLetters_[3]) and (EngLetters_[2]=EngLetters_[4]) then
← →
leonidus © (2006-07-01 23:23) [5]Через промежуточные переменные я догадался сделать, но это как-то криво, я просто не пойму почему если написать
var
s:string;
...
if s[1]+s[2]=s[3]+s[4] then
...
то все работает, а если s:widestring то нет.
← →
leonidus © (2006-07-01 23:30) [6]Вот пожалуй приведение типов это лучше, но как происходит приведение? У меня строка содержит юникодные символы, не переведуься ли они в ANSI кодировку?
← →
Phoroon~ © (2006-07-01 23:40) [7]Ни куда они не переведутся.
← →
leonidus © (2006-07-02 00:06) [8]а тогда в чем смысл этой операции вообще?
← →
Шпиён (2006-07-02 00:29) [9]
> leonidus © (02.07.06 00:06) [8]
> а тогда в чем смысл этой операции вообще?
http://home.ural.ru/~swer/5.htm
ps А лучший вариант (imho) - сделать как посоветовал palva © в [4]
Тогда и приведение типов не понадобится.
← →
georgius © (2006-07-02 15:04) [10]А попробуй так:
if AnsiCompareStr(Copy(EngLetters_, 1, 2), Copy(EngLetters_, 3, 2)) <> 0 then
....
Можно еще использовать AnsiCompareText и SameText
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2006.08.13;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.046 c