Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 17.05.2010, 07:37
andrey.v.z andrey.v.z вне форума
Прохожий
 
Регистрация: 27.04.2010
Сообщения: 22
Репутация: 10
Восклицание Исключить строки с буквами...

Везде предлагают простой вариант:
Цитата:
Try
StrToInt(str);
Except
ShowMessage('есть буквы');
end;
Не понимаю почему, но он у меня не работает! Пробывал и в своей проге и просто в новой пустой форме, все равно вылетает ошибка: "Проект вызвал исключение класса EConvertError c сообщением 'agdg123123' is not a valid integer value. Процесс остановлен."
В чем может быть дело?
Ответить с цитированием
  #2  
Старый 17.05.2010, 07:52
Аватар для T-dayne
T-dayne T-dayne вне форума
Начинающий
 
Регистрация: 26.01.2010
Сообщения: 180
Репутация: 31
По умолчанию

Интереснаят у тебя реализация
мб так:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
 for i:=0 to length(str) do
  begin
   if str[i] in['a'..'z','A'..'Z','А'..'Я', 'а'..'я', '.' , decimalseparator] then
    begin
     showmessage('Есть буквы'); abort;
    end;
  end;
end;
Ответить с цитированием
  #3  
Старый 17.05.2010, 08:03
Аватар для dr. F.I.N.
dr. F.I.N. dr. F.I.N. вне форума
I Like it!
 
Регистрация: 12.12.2009
Адрес: Россия, г. Новосибирск
Сообщения: 663
Версия Delphi: D6/D7
Репутация: 26643
По умолчанию

Я бы сделал по-другому:
Код:
var
  numberString : string;
  float        : Extended;
  errorPos     : Integer;
begin
  // Попытка преобразования строки в значение
  Val(numberString, float, errorPos);

  // Показ строки и преобразованного значения

  if errorPos = 0
  then ShowMessageFmt('Val(%s) = %12.3f',[numberString,float])
  else ShowMessageFmt('Val(%s) потерпело неудачу в позиции %d',
                      [numberString, errorPos]);
end;
Поиск знает все
Ответить с цитированием
  #4  
Старый 17.05.2010, 08:05
Аватар для Bars1992
Bars1992 Bars1992 вне форума
Активный
 
Регистрация: 24.04.2010
Адрес: Украина, Кременчуг
Сообщения: 249
Репутация: 22
По умолчанию

Всё очень просто) Твой код работает просто в режиме отладки сообщение вылетать будет. Попробуй запустить уже откомпелировануюу програму не через делфи. Собощения будут перехвативатся коннструкцией try except и все будет норм)
__________________
Не твори зла, и жизнь повернется к тебе передом
Ответить с цитированием
  #5  
Старый 17.05.2010, 08:46
andrey.v.z andrey.v.z вне форума
Прохожий
 
Регистрация: 27.04.2010
Сообщения: 22
Репутация: 10
По умолчанию

))) Так и думал фигня какая-то.. Bars1992, спасибо.

Цитата:
Сообщение от T-dayne
Интереснаят у тебя реализация
Не то чтобы я автор этой реализации, это самый часто предлагаемый вариант, если воспользоваться поиском, да и самый простой и меня полностью устраивает, т.к. мне не нужно искать буквы в строке, а просто хотелось, если пользователь ошибется с выбором обрабатываемого интервала файла, чтобы он не видел "страшный еррор от системы", а понятное сообщение... а скорее всего я просто буду пропукать неправильные строки при обработке...
Но все равно, всем спасибо за предложенные варианты! Сохранил в копилку...
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 17:59.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025