Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

преобразование 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


Наверх

Титульная страница Поиск, карта сайта Написать письмо