![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
преобразование String[1] в Char. [D7, WinXP]
froll © (2010-01-22 14:26:00)Здравствуйте!
Нужно проверить строку на то, чтобы она начиналась только с допустимых символов.
Допустимые символы описаны как
TLetters = Set of 'A'..'B';
Проверка:
Var
Str: string[1];
Ch: Char;
Letters: TLetters;
Str := LeftStr(MyString, 1);
Ch := Str;
if (not (Ch in Letters)) then
begin
MyString := Copy(MyString, 2, Length(MyString) - 1);
end
Вобщем, на строчке Ch=Str компилятор выдает ошибку Invalid Typecast..
Жутко торможу как решить проблему... Подскажите по-та. Заранее благодарствую.
{RASkov} (2010-01-24 11:29:00) [1]> смотри определения типов в [0].
для моего [1] Str - это не из [0], т.е. не String[1] а просто String...
Правильнее было бы написать:if not (MyString[1] in letters) then
или более правильно как в [4] т.е:if (Length(MyString)>0) and not (MyString[1] in letters) then
Вообще как Анатолий сказал Str: String; и затем Str[n] - т.е. n-ый символ в строке Str и есть Char...
Другими словами не нужно его гонять между типами, как это сделано в [0]...
Плохиш (2010-01-24 02:05:00) [2]
> Дмитрий С © (23.01.10 20:03) [4]
>
> if ((Length(Str)>1) and (Str[1] in ['a'..'z'])) then
Бессмысленный код. Почему, смотри определения типов в [0].
Дмитрий С (2010-01-23 20:03:00) [3]if ((Length(Str)>1) and (Str[1] in ['a'..'z'])) then
Anatoly Podgoretsky (2010-01-22 14:39:00) [4]А вот это Ch := Str; не str[1]
Anatoly Podgoretsky (2010-01-22 14:38:00) [5]> froll (22.01.2010 14:26:00) [0]
String[1] и так Char, нечего преобразовывать.
{RASkov} (2010-01-22 14:34:00) [6]if str[1] in letters then