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

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

Подскажите как в строке чисел наитйти букву [D6, WinXP]


sergeii ©   (2004-07-13 10:51:00) 

Пользователь должен в едит вводить цифры, но скажем он ошибся и ввёл одну или несколько букв как мне найти ети буквы, чтото типо етого
p:=pos('a..z,A..Z',value);
Как ето сделать правельноЪ


Mim1   (2004-07-13 13:18:00) [1]

'0'..'9'ессно


Mim1   (2004-07-13 13:17:00) [2]

var i:integer;
   s:string;
begin
 s := '343l345';
 for i:= 1 to length(s) do
   if s[i] in ['a'..'z','*','A'..'Z'] then
     ShowMessage(inttostr(i));
end;


хотя наоборот if not (s[i] in ['0'..'1','.',',']) thenимхо красивее


REA   (2004-07-13 13:11:00) [3]

Там где точка там и "+-E"


Anatoly Podgoretsky   (2004-07-13 12:18:00) [4]

Если в слове только цифры, то это означает, что в слове нет других символов кроме цифр.


Digitman   (2004-07-13 12:04:00) [5]


> Пользователь должен в едит вводить цифры


по последнему постановлению ЦК ВЦСПС символ .(точка) , очевидно, тоже стал считаться "цифрой"


Ega23   (2004-07-13 11:14:00) [6]

Тебе не кажется, что лучше перечислить все РАЗРЕШЁННЫЕ символы?
Что-то вроде:

procedure TFExtSearch.ePWeightKeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ['0'..'9',#8, DecimaleSeparator]) then Key:=#0;
end;


sergeii   (2004-07-13 11:10:00) [7]

да


Ega23   (2004-07-13 11:08:00) [8]

Кроме БУКВ у тебя могут быть спец.символы, типа /'\?!$%@*(
Их ты тоже все перечислять будешь?


sergeii   (2004-07-13 11:06:00) [9]

тогда спрошу подругому как в строке наити буквы???
:))))


Ega23   (2004-07-13 11:04:00) [10]

sergeii ©   (13.07.04 11:02) [5]

Ну, батенька, а DecimaleSeparator тебе на что дан?


sergeii   (2004-07-13 11:02:00) [11]

С procedure Val(S; var V; var Code: Integer); всё хорошо только она хорошо понимает число 123.123 но ни понимает что 123,123 ето число, ето всио зависит от системныь установок ето не очень хорошо.


Max Ivanych   (2004-07-13 11:01:00) [12]

не проше ли взять MaskEdit и задать соответствующую маску?


Ega23   (2004-07-13 10:56:00) [13]

Есть такая штука:
procedure Val(S; var V; var Code: Integer);
S - строка,
V - число,
Code - если конвертация строки в число прошла успешно, то 0, если нет - позиция в строке, на которой произошла ошибка.


sergeii   (2004-07-13 10:56:00) [14]

а есле надо просто проверять?


Рамиль   (2004-07-13 10:53:00) [15]

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


Наверх

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