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

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

Проверка строки [D7, XP]


Igor2010 ©   (2009-07-11 12:22:00) 

Как проверить является ли строка(string) числом(integer, real)?


Ega23   (2009-07-13 16:13:00) [1]


> А если, не дай Бог, американский формат?


А что, Val определяет, американский формат, или арабо-израильский?
Или вообще, у меня римскими цифрами записано?


Anatoly Podgoretsky   (2009-07-13 16:10:00) [2]

> Amoeba  (13.07.2009 16:07:18)  [18]

Не дай бог конечно, а какая разница?


Amoeba   (2009-07-13 16:07:00) [3]

А если, не дай Бог, американский формат?
123,456,789.00
Чем руководствоваться применяя StringReplace?


Ega23   (2009-07-13 15:45:00) [4]

Собственно, TryStrToInt через Val и работает:

function TryStrToInt(const S: string; out Value: Integer): Boolean;
var
 E: Integer;
begin
 Val(S, Value, E);
 Result := E = 0;
end;


Ega23   (2009-07-13 15:43:00) [5]


> А если DecimalSeparator - запятая? Тогда как быть?


s := StringReplace(StringReplace(s, '.', DecimalSeparator, []), ',', DecimalSeparator, []);


Anatoly Podgoretsky   (2009-07-13 13:55:00) [6]

> clickmaker  (13.07.2009 12:25:14)  [14]

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


clickmaker   (2009-07-13 12:25:00) [7]

> А что делают риальные пацаны, при S1 = '1.23' и при S2 =
> '1,23'

StringReplace


Anatoly Podgoretsky   (2009-07-13 12:20:00) [8]

> clickmaker  (13.07.2009 12:14:12)  [12]

А что делают риальные пацаны, при S1 = '1.23' и при S2 = '1,23'


clickmaker   (2009-07-13 12:14:00) [9]

> А если DecimalSeparator - запятая? Тогда как быть?

чиста риальные пацаны сразу заменяют DecimalSeparator на свой, при старте программы. А особо крутые перцы меняют сразу системные настройки -)


Anatoly Podgoretsky   (2009-07-13 12:10:00) [10]

А видимо так и есть.


Amoeba   (2009-07-13 11:58:00) [11]


> Ega23 ©   (13.07.09 10:00) [9]
>
>
> > Как проверить является ли строка(string) числом(integer,
>
> >  real)?
>
>
> Val + F1

А если DecimalSeparator - запятая? Тогда как быть?


Ega23   (2009-07-13 10:00:00) [12]


> Как проверить является ли строка(string) числом(integer,
>  real)?


Val + F1


brother   (2009-07-13 07:05:00) [13]

уж не для едитов ли хочешь использовать?


Igor2010   (2009-07-11 13:43:00) [14]

Спасибо работает, закрываем темку


oldman   (2009-07-11 13:24:00) [15]


> если только InToStr и IntToFloat, это скучно...


StrToInt и StrToFloat, ессно...
руки кривые!!!


oldman   (2009-07-11 13:22:00) [16]


> turbouser ©   (11.07.09 13:15) [4]


перефразируем...

string:="25,52е +10" является числом?
string:="25*22-(12+14)/7" является числом?

если только InToStr и IntToFloat, это скучно...


turbouser   (2009-07-11 13:15:00) [17]


> oldman ©   (11.07.09 13:14) [3]


и снова атака буквоедов


oldman   (2009-07-11 13:14:00) [18]


> Igor2010   (11.07.09 12:22)  
> Как проверить является ли строка(string) числом(integer,
>  real)?


string:="двадцать пять" является числом?


Игорь Шевченко   (2009-07-11 12:40:00) [19]

tryStrto...


Юрий Зотов   (2009-07-11 12:30:00) [20]

Либо парсить, либо что-то типа этого:
function IsInteger(S: string): boolean;
begin
 try
   StrToInt(S)
   Result := true
 except
   Result := false
 end
end;


Наверх

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