Вниз
Скачать: CL | DM;

Как проверить только ли латинские символы в переменной?   Найти похожие ветки 

← →
Yorik   (2004-11-15 12:35) [0]

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


← →
Cosinus ©   (2004-11-15 12:38) [1]

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


← →
Yorik   (2004-11-15 12:39) [2]

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


← →
Cosinus ©   (2004-11-15 12:42) [3]

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


← →
Алхимик ©   (2004-11-15 14:02) [4]


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

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


← →
Yorik   (2004-11-15 15:35) [5]

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. Где ошибка то чето не пойму?


← →
Reindeer Moss Eater ©   (2004-11-15 15:43) [6]

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


← →
Yorik   (2004-11-15 15:47) [7]

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


← →
begin...end ©   (2004-11-15 15:49) [8]


> [5] Yorik   (15.11.04 15:35)

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

> [7] Yorik   (15.11.04 15:47)


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

Да ты гонишь.


← →
Reindeer Moss Eater ©   (2004-11-15 15:49) [9]

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


← →
begin...end ©   (2004-11-15 16:03) [10]

{$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.


← →
Yorik   (2004-11-15 16:12) [11]

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



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.024 c
1-1100375861
TSoftman
2004-11-13 22:57
2004.11.28
Иконка файла


1-1100229943
vovchik
2004-11-12 06:25
2004.11.28
Расширение *.cmp


6-1095362341
Лев Ландау
2004-09-16 23:19
2004.11.28
Как зателнетить асю?


4-1097862326
Viper
2004-10-15 21:45
2004.11.28
Файлы


14-1099242760
DillerXX
2004-10-31 20:12
2004.11.28
У меня сгорел винт :(((((((




   Наверх