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

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

Как проверить только ли латинские символы в переменной? [D7, Win2k, WinXP]


Yorik ©   (2004-11-15 12:35:00) 

Здравствуйте, вот собственно сабж,
есть строковая переменная, в которой может быть набор символов, как проверить эту переменную, мне надо чтобы она содержала только латинские буквы от a..z или A..Z и цифры.
спасибо.


Yorik   (2004-11-15 16:12:00) [1]

мда)) я пока так "извращаться" не умею))


begin...end   (2004-11-15 16:03:00) [2]

{$B-} // :-)

begin
 Len := Length(EditInput.Text);
 I := 1;
 while (I <= Len) and (EditInput.Text[I] in ['0'..'9','a'..'z','A'..'Z']) do
   Inc(I);
 WrongText := I <= Len
end.


begin...end   (2004-11-15 15:49:00) [3]


> [5] Yorik   (15.11.04 15:35)

А нафига цикл по всемсимволам гонять?

> [7] Yorik   (15.11.04 15:47)


> как раз строки с 0 индексируются в списках всяких вроде

Да ты гонишь.


Reindeer Moss Eater   (2004-11-15 15:49:00) [4]

Ну так какого ты рисуешь цикл с нуля, если в нем есть EditInput.Text[ i] ?


Yorik   (2004-11-15 15:47:00) [5]

ну насчет строк я не понял), потому что как раз строки с 0 индексируются в списках всяких вроде) а вот символы в строковой переменной точно с единицы. вот блин, так ведь запутаться можно)


Reindeer Moss Eater   (2004-11-15 15:43:00) [6]

Строки индексируются с единицы, а не с нуля.


Yorik   (2004-11-15 15:35:00) [7]

wrongtext := False;

for i:=0 to Length(EditInput.Text) -1 do
begin
    if not (EditInput.Text[i] in ['0'..'9','a'..'z','A'..'Z'])
    then wrongtext := True;
end;

В EditInput введено обычное цифровое значение но почему то wrongtext приходит с этого цикла в значении True. Где ошибка то чето не пойму?


Алхимик   (2004-11-15 14:02:00) [8]


> Yorik
> чтото не особо это рационально мне кажется

Чтобы убедиться что в каждом ящике стола у тебя лежит пирожок, необходимо проверить последовательно каждый ящик на предмет наличия пирожка.
Стол - строка
Ящик - позиция в строке
Пирожок - латинская буква
Ж)


Cosinus   (2004-11-15 12:42:00) [9]

Есть какая-то... Но я не помню, какая, да и насколько я помню, не всегда ее использование оправдано. А чем тебя это то не устраивает... Функция, как фунция...


Yorik   (2004-11-15 12:39:00) [10]

ммм, а готовой функции никакой нет? чтото не особо это рационально мне кажется.


Cosinus   (2004-11-15 12:38:00) [11]

Посимвольно в цикле if not (Str[i] in ['0'..'9','a'..'z','A'..'Z']) then bla-bla-bla


Наверх

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