Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.18;
Скачать: CL | DM;

Вниз

Как мне узнать что в Едит ввели нечисло а строковое значение??   Найти похожие ветки 

 
Relaxxx ©   (2003-08-30 14:51) [0]

Здраствуйте!!!
Как мне узнать что в Едит ввели нечисло а строковое значение??


 
panov ©   (2003-08-30 14:59) [1]

я думаю, что надо проверить.


 
AndreySoft ©   (2003-08-30 15:00) [2]

Присвой какой-нибудь переменной то, что находится в Edit"е, а дальше перебери каждый символ с проверкой на число. Если встретился хоть один символ не равный числу, тогда это строка, а не число.


 
Anatoly Podgoretsky ©   (2003-08-30 15:21) [3]

AndreySoft © (30.08.03 15:00) [2]
Ну например ни запятая ни точка не являются цифрой, а ABCDEF являются.


 
AndreySoft ©   (2003-08-30 15:34) [4]

>>Anatoly Podgoretsky © (30.08.03 15:21) [3]

Для этого существует DecimalSeparator
Знаешь что это такое?


 
AndreySoft ©   (2003-08-30 15:39) [5]

>>Anatoly Podgoretsky © (30.08.03 15:21) [3]

Да, ещё! Объясни, как это так у тебя ABCDEF вдруг столо числом?


 
TButton ©   (2003-08-30 15:56) [6]

ABCDEF ето шестнацатиразрядные цифры

а проверить что введено не число - Val


 
Dm9   (2003-08-30 16:03) [7]

ABCDEFGHIJ - тоже число. В 18-ричной системе счисления.


 
AndreySoft ©   (2003-08-30 16:07) [8]

Да, блин его же не интересует HEX и всякие другие системы счисления, ему просто 10-ная система нужна.


 
Relaxxx ©   (2003-08-30 16:24) [9]

а если у меня не целое число, запятая не является цифрой?? Да и как разбить слово на буквы??


 
DrPass ©   (2003-08-30 16:34) [10]

try
strtofloat(Edit1.Text);
except
showmessage("Это не число");
end;


 
AndreySoft ©   (2003-08-30 16:39) [11]

Если у тебя не целое число, то для этого предназначен DecimalSeparator (математический разделитель).

Слушай, извини меня конечно но по-моему ты немного ламеришь:


> как разбить слово на буквы?


Строка состоит из символов. Присваиваешь переменной s Edit (s:=Edit1.Text). Дальше организуй цикл от нуля и до числа которым является кол-во символов в строке ( for i:=0 to x do).
x это и есть кол-во символов в строке. Получить его можно, например, вот такой записью (x:=Edit1.GetTextLen).
Ну а дальше внутри цикла пишешь что-то на вроде этого:
if not (s[i] in ["0","1","2","3","4","5","6","7","8","9", DecimalSeparator]) then //Строка не число else //Строка состоит из числа;

Ду ю андэстэнд ми?


 
Relaxxx ©   (2003-08-30 16:47) [12]

ОК, все спасибо разобралься, ненадо так сердится что я задаю ламерские вопросы я только учусь, не се ж сразу :)))


 
DrPass ©   (2003-08-30 16:51) [13]

>AndreySoft © (30.08.03 16:39) [11]
мудрый алгоритм
...0000....000.... - это тоже число у нас получится :)


 
AndreySoft ©   (2003-08-30 17:01) [14]

>>DrPass © (30.08.03 16:51) [13]

А чем тебе не число? Он спрашивал про символику, а не про математические числа!


 
DrPass ©   (2003-08-30 17:04) [15]

Ужас! Как это я не подумал :)


 
Юрий Зотов ©   (2003-08-30 17:13) [16]

> AndreySoft © (30.08.03 15:34) [4]
> Для этого существует DecimalSeparator

Слушай, а можешь объяснить, что это такое? Только попроще, а то в справке ни хрена не понятно.


 
AndreySoft ©   (2003-08-30 17:18) [17]

Не гоже мастерам спрашивать о таких вопросах! Позор, понимаешь ли!


 
Юрий Зотов ©   (2003-08-30 17:20) [18]

> AndreySoft © (30.08.03 16:39) [11]

if not (s[i] in ["0","1","2","3","4","5","6","7","8","9", DecimalSeparator]) then //Строка не число else //Строка состоит из числа;

1. Можешь записать тоже самое, но короче и без лишних операций?
2. Как быть с таким числом: -1.25E+5 ?


 
Юрий Зотов ©   (2003-08-30 17:24) [19]

> AndreySoft © (30.08.03 17:18) [17]

> Не гоже мастерам спрашивать о таких вопросах! Позор, понимаешь
> ли!

Ну ладно, чего ты, жалко, что ли? Я еще только начинающий мастер-то. Только учусь, а вот с английским беда, понимаешь? Помоги уж, если тебе не в лом, конечно.


 
AndreySoft ©   (2003-08-30 17:27) [20]

>Юрий Зотов © (30.08.03 17:20) [18]
Могу и короче, а что? Это кому как нравиться!

Ну а про числа в экспоненциальной форме, это вообще надо писать отдельную процедуру.


 
AndreySoft ©   (2003-08-30 17:31) [21]

>Юрий Зотов © (30.08.03 17:24) [19]

Decimal Separator (от англ. - математический разделитель). Это Вам так, в целях повышения самообразованности.


 
horse ©   (2003-08-30 17:37) [22]

Да тут прикольней, чем в потрепаться ! :))


 
Юрий Зотов ©   (2003-08-30 17:44) [23]

> AndreySoft

> Могу и короче, а что? Это кому как нравиться!

Ну так и напиши короче. Ты же пример человеку даешь, вот и покажи пример, как НАДО писать код.

> Ну а про числа в экспоненциальной форме, это вообще надо
> писать отдельную процедуру.

Совершенно не обязательно. Хватит ровно пяти простейших строк.

> Decimal Separator (от англ. - математический разделитель).

Вообще-то, если уж "от англ.", то десятичный, а не математический. Ну это и так понятно, а вот рассказал бы о нем?


 
AndreySoft ©   (2003-08-30 17:53) [24]

>Юрий Зотов © (30.08.03 17:44) [23]

Пожалуйста, вот короче:
...
if not (s[i] in ["0".."9", DecimalSeparator]) then //Строка не число else //Строка состоит из числа;
...

> Совершенно не обязательно. Хватит ровно пяти простейших
> строк.


Я же говорю: " Кому как нравиться"

> а вот рассказал бы о нем?


Значит так, сильно Вас загружать не буду, но в двух словах: этот математический (десятичный) разделитель визуально выглядит как запятая, а не точка.


 
Юрий Зотов ©   (2003-08-30 17:59) [25]

> AndreySoft © (30.08.03 17:53) [24]

if not (s[i] in ["0".."9", DecimalSeparator]) then //Строка не число else //Строка состоит из числа;...

1. Лишняя операция.
2. Утверждение в then - ошибочное.

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


Э-э-э... типа, от локализации системы не зависит, что ли?


 
Anatoly Podgoretsky ©   (2003-08-30 18:00) [26]

Dm9 (30.08.03 16:03) [7]
В 18-ричной системе счисления это не число, сам поймешь почему если посчитаешь, но тут правда вопрос о нотации.

Юрий Зотов © (30.08.03 17:24) [19]
Я долго смеялся глядя на его ответы, почти на все, особенно обрадовал перевод.


 
AndreySoft ©   (2003-08-30 18:08) [27]


> Юрий Зотов © (30.08.03 17:59) [25]


> 2. Утверждение в then - ошибочное.

Что значит ошибочное? Я же код не предоставляю, а типа алгоритма!
> Э-э-э... типа, от локализации системы не зависит, что ли?
Естественно зависит! Да, блин! Вы что думаете я тут на Ваши вопрсы всерьёз буду отвечать? Особенно меня порадовал этот:

>Слушай, а можешь объяснить, что это такое? Только попроще, а то в справке ни хрена не понятно.

Вы бы ещё спросили: "А что такое Borland Delphi"?


 
zzet ©   (2003-08-30 18:15) [28]

ЮЗ!!! Класс! Гы.. ;-)))


 
otido ©   (2003-08-30 18:17) [29]

ААААААААА!!!!!!
Где Ё-моё имя?? Это же продолжение ветки про шифровку!!!
КОроче еще вечер здоровго смеха))


 
pasha_golub ©   (2003-08-30 18:18) [30]

2AndreySoft

Ты, это, чего, новенький что ли? :-)))

А можно вот так?

procedure TMyForm.Some;
begin
try
floattostr(edit.text);
except
on EConvertError do ShowMessage("Кажись задница")
Exit;
end;
ShowMessage("А это вроде ничего");
end;


 
pasha_golub ©   (2003-08-30 18:19) [31]

Oops! опечатка

procedure TMyForm.Some;
begin
try
floattostr(edit.text);
except
on EConvertError do
begin
ShowMessage("Кажись задница")
Exit;
end
end;
ShowMessage("А это вроде ничего");
end;


 
pasha_golub ©   (2003-08-30 18:24) [32]

Написал, а потом заметил, что товарищ DrPass ужо... :-)
А ладно, все равно "Потрепаться" :-)

2AndreySoft

А Вы молодой человек, ботаникой часом не увлекаетесь? Не выращиваете часом ничего?


 
AndreySoft ©   (2003-08-30 18:27) [33]

>>pasha_golub © (30.08.03 18:24) [32]
>А Вы молодой человек, ботаникой часом не увлекаетесь? Не
>выращиваете часом ничего?


А с чего Вы взяли, молодой человек?


 
Юрий Зотов ©   (2003-08-30 18:28) [34]

> AndreySoft © (30.08.03 18:08) [27]

> Что значит ошибочное?

То и значит, что ошибочное. В прямом смысле (правда, не в then, а в else, это уже я описАлся). Потому что если i-й символ - цифра, то это еще не значит, что вся строка - число.

>> Э-э-э... типа, от локализации системы не зависит, что ли?
> Естественно зависит!

А от ее настроек зависит? Тоже зависит. Зачем же тогда говорить, что это запятая, а не точка? По-разному может быть, и даже в процессе работы программы может меняться.

> Вы что думаете я тут на Ваши вопрсы всерьёз буду отвечать?
> Особенно меня порадовал этот: ...

А меня больше всего порадовало, как ты ВСЕРЬЕЗ спрашивал у Анатолия, знает ли он, что такое DecimalSeparator. Могу тебя уверить, что он знал это задолго до того, как ты вообще родился. А также уже тогда знал огромную кучу вещей, о которых ты и сейчас не имеешь не малейшего понятия. И даже о них и не слышал. Так что в следующий раз подумай, прежде чем пальцы гнуть - не смешно ли ты выглядишь? На весь Рунет.

> Вы бы ещё спросили: "А что такое Borland Delphi"?

А что такое Borland? А что такое Delphi? Расскажи, а?


 
otido ©   (2003-08-30 18:36) [35]

рарзрываюсь между смехом и жалостью.... может он всё-таки прикалывается???)


 
AndreySoft ©   (2003-08-30 18:37) [36]

Ладно, пусть я и не такой профи пока в программинге, но зачем же тогда, например, спрашивать о тех вещах, как это:

"А как это написать "
> Можешь записать тоже самое, но короче...

Я же уже говорил: "Дело вкуса"!


 
otido ©   (2003-08-30 18:39) [37]


> Ладно, пусть я и не такой профи пока в программинге

Одно радует - признал)))


 
Anatoly Podgoretsky ©   (2003-08-30 18:39) [38]

pasha_golub © (30.08.03 18:19) [31]
Вроде лишее, выполнение в пределах блока.

Юрий Зотов © (30.08.03 18:28) [34]
Это вроде у тебя спрашивали.

Немного личного, но по другому ты недоступен.
У меня есть вопрос по поводу твоих уроков, если будет возможность свяжись со мной.


 
AndreySoft ©   (2003-08-30 18:41) [39]

>>otido © (30.08.03 18:36) [35]

А по-моему здесь все прикалываются, это ведь уже не обсуждение вопроса, а потрепаться.


 
otido ©   (2003-08-30 18:44) [40]

2 AndreySoft
Слушай, как думаешь, над чем/над кем тут прикалываются?



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

Текущий архив: 2003.09.18;
Скачать: CL | DM;

Наверх




Память: 0.57 MB
Время: 0.028 c
1-58665
Дмитрий В. Белькевич
2003-09-04 16:35
2003.09.18
Печать bitmap на canvas принтера.


14-58874
Экселенц
2003-08-24 18:29
2003.09.18
AIM


9-58501
Juster~
2003-03-05 18:45
2003.09.18
Рендеринг планет


1-58652
Vitalygavrilov
2003-09-05 10:25
2003.09.18
Как сделать чтобы некакие действия небыли возможны.


3-58514
SiJack
2003-08-28 15:07
2003.09.18
Управление доступом к БД