Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> конвертирование StrToInt 
V
    Опции темы
Leana
Дата 26.7.2006, 19:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 16.6.2006

Репутация: нет
Всего: нет



Скажите, есть ли более красивый способ проверить, являются ли все charachters in a string числами. Я это проверяю вот так:
Код

function NotNumbers(TheData: string): boolean;        
  var
        i: Integer;
    begin
    Result := False;
    TheData := Trim(TheData);
    for i := 1 to Length(TheData) do begin
        try
            StrToInt(TheData[i]);
        except
            on e: EConvertError do Result := True;
            end;
        end;
    end; 
 

Это сообщение отредактировал(а) Snowy - 26.7.2006, 20:07
PM MAIL   Вверх
Matematik
Дата 26.7.2006, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1027
Регистрация: 11.3.2006

Репутация: 17
Всего: 50



TryStrToInt()
StrToIntDef()


Код

function StrIsInt(const Str:String):Boolean;
begin
  for j:=1 To Length(Str) do
  begin
    if not (Str[j] in ['0'..'9']) then
    begin
      result := False;
      exit;
    end
  end;
  result := True;
end;
   

Это сообщение отредактировал(а) Matematik - 26.7.2006, 19:51
PM MAIL WWW ICQ   Вверх
Snowy
Дата 26.7.2006, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



if TryStrToInt()
читаем справку...

Добавлено @ 20:01 
http://forum.vingrad.ru/index.php?showtopic=103703

Добавлено @ 20:05 
Код

function IsDigit(s: string): boolean;
var i, E: Integer;
begin
  val(S, i, E); result := E = 0;
end;
  
PM MAIL   Вверх
Leana
Дата 26.7.2006, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 16.6.2006

Репутация: нет
Всего: нет



Спасибо, думаю, воспользуюсь способом Математика, так как о процедуре Val нашла устрашающее предупреждение:
Warning : it is safer to use the SysUtils conversion routines, such as StrToFloat where locale information is recognised. In particular, the character used for the decimal point.


 
PM MAIL   Вверх
Snowy
Дата 26.7.2006, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



TryStrToInt покороче и поудобней будет... 
PM MAIL   Вверх
bazzzman
Дата 27.7.2006, 04:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 24.7.2006

Репутация: 0
Всего: 2



Result := Boolean ( StrToIntDef(str, -666) <> -666 );

Такой подход использую везде. 
PM MAIL WWW   Вверх
Quadr0
Дата 27.7.2006, 04:33 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











...

Это сообщение отредактировал(а) Quadr0 - 15.7.2011, 11:44
  Вверх
jack128
Дата 27.7.2006, 11:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 18.5.2005

Репутация: 2
Всего: 4



'654691631616541698469513168694163131'

что скажет на эту строчку TryStrToInt() IntToStrDef() и тому подобные функции ?? 
PM MAIL   Вверх
Akella
Дата 27.7.2006, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



jack128, 
Цитата(jack128 @  27.7.2006,  11:10 Найти цитируемый пост)
'654691631616541698469513168694163131'

'это не integer

Добавлено @ 11:15 
прочти название темы 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0635 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.