Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.11.2008, 17:18   #1
Whiplash
Пользователь
 
Регистрация: 08.11.2008
Сообщений: 24
По умолчанию Проверка правильности ввода.

Доброго времени суток.
Существует следующая процедура.
Хотелось бы реализовать следующую задачу:
передавая параметры строкого либо целочисленного типа осуществить
проверку ввода...
Код:
procedure WriteXY(Var S);
Var S1: String Absolute S;
    Z: Byte;
    Code: Integer;
begin
  {$I-}
  Val(S1,Z,Code);
  {$I+}
  if Code <> 0 then
    Write(S1)
  else
    Write(Z);
end;
Это было бы смешно, если бы не было так серьезно. "451 по Фаренгейту".
Whiplash вне форума Ответить с цитированием
Старый 14.11.2008, 17:23   #2
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 16,219
По умолчанию

Что за проверка требуется, не ясно?
Код:
{$I-}
  Val(S1,Z,Code);
  {$I+}
Комментарий компилятора $I отвечает за отключение проверки ошибок ввода-вывода, а не вообще ошибок. Эта конструкция тут явно лишняя.
Arigato вне форума Ответить с цитированием
Старый 14.11.2008, 17:28   #3
Whiplash
Пользователь
 
Регистрация: 08.11.2008
Сообщений: 24
По умолчанию

Параметру S я присваиваю либо значение строкового типа, либо целочисленного.
Все правильно работает если передаваемый пар-р строка,
но, если я передаю число, то оно "обрубается" непонятным мне образом.
Это было бы смешно, если бы не было так серьезно. "451 по Фаренгейту".
Whiplash вне форума Ответить с цитированием
Старый 14.11.2008, 17:34   #4
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 16,219
По умолчанию

Хорошо, зайдем с другого конца. Что Вы хотите получить в конечном итоге?
Ваша процедура реализована, мягко говоря, не красиво. Может есть другое решение.
Arigato вне форума Ответить с цитированием
Старый 14.11.2008, 17:38   #5
Whiplash
Пользователь
 
Регистрация: 08.11.2008
Сообщений: 24
По умолчанию

В итоге я хочу получить либо строку, либо целое число, которые являлись передаваемыми параметрами.
Это было бы смешно, если бы не было так серьезно. "451 по Фаренгейту".
Whiplash вне форума Ответить с цитированием
Старый 14.11.2008, 17:57   #6
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 16,219
По умолчанию

Процедуре Write и так без разницы, строковый или числовой параметр передан. Проще стразу вызывать Write, а не эту Вашу процедуру.
Arigato вне форума Ответить с цитированием
Старый 14.11.2008, 18:00   #7
Whiplash
Пользователь
 
Регистрация: 08.11.2008
Сообщений: 24
По умолчанию

Просто моя задача на самом деле немного сложнее.
Спасибо за помощь
Не буду зря мучиться))
Это было бы смешно, если бы не было так серьезно. "451 по Фаренгейту".
Whiplash вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка правильности ввода символов LLIypLLIyH Помощь студентам 7 22.07.2008 19:30
Проверка ввода Panda Помощь студентам 2 08.07.2008 19:23
проверка ввода данных в форму @Simpson JavaScript, Ajax 1 12.11.2007 02:17
Проверка ввода символов Raz0r Помощь студентам 2 06.11.2007 14:16
Проверка правильности KORT Помощь студентам 3 23.04.2007 20:23