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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.10.2008, 20:44   #1
rainbow
Форумчанин
 
Регистрация: 06.09.2008
Сообщений: 156
По умолчанию Проверка на пустые введенные данные

Меня интересует одна вещь:
В delphi можно проверить, если введена пустая строка:
Код:
If Edit1.text='' then
begin
........
end;
То же самое можно использовать null если переменная не имеет никакого значения, или nil если используеться указатель.

А в паскале как?

Например вот кусок кода:
Код:
procedure rep;
var f:real
begin
Writeln('Введите f');
Readln(f);
{Сдесь надо сделать проверку, чего ввел пользователь}
if f=null then
Writeln('Введена пустая строка')
{Или Writeln('Введено неправильно значение f'), если пользователь ввел букву.}
Здесь проверка делаеться как то по другому, но я материал по этому нигде найти не могу.
Ужас, как я устал от тупизны...
rainbow вне форума Ответить с цитированием
Старый 23.10.2008, 20:55   #2
Nester
Форумчанин
 
Аватар для Nester
 
Регистрация: 22.10.2008
Сообщений: 103
По умолчанию

//Функция проверяет строку на пустоту
Function STRING_IS_EMPTY (S :String) :Boolean;
Var N :Integer;
Begin
Result:=TRUE;
For N:=1 To Length(S) Do If S[N]<>' ' Then Begin Result:=FALSE; Break; End
End;
Никто не знает больше чем не знаю я
Nester вне форума Ответить с цитированием
Старый 23.10.2008, 21:12   #3
-=<[Evklidd]>=-
Форумчанин Подтвердите свой е-майл
 
Аватар для -=<[Evklidd]>=-
 
Регистрация: 22.01.2008
Сообщений: 161
По умолчанию

Цитата:
Меня интересует одна вещь:
В delphi можно проверить, если введена пустая строка:
Код:


If Edit1.text='' then
begin
........
end;

То же самое можно использовать null если переменная не имеет никакого значения, или nil если используеться указатель.

А в паскале как?
Абсолютно также, только вместо свойства Edit'а используйте какую-либо переменную типа string. Например
Код:
var
 s: string;
begin
 writeln('Vvedite stroku: ');
 readln(s);
 if s = '' then
  writeln('Pusta9 stroka'); 
 readln;
end.
-=<[Evklidd]>=- вне форума Ответить с цитированием
Старый 23.10.2008, 23:19   #4
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

или if Length(s)=0
или if ord(s[0])=0
puporev вне форума Ответить с цитированием
Старый 24.10.2008, 06:07   #5
rainbow
Форумчанин
 
Регистрация: 06.09.2008
Сообщений: 156
По умолчанию

Это хорошо, но описаные способы работают только с типом string;
А как быть с остальными типами?
В Delphi например есть такие функции как IntToStr, FloatToStr, через которые можно перевести различные типы в строку, а в Паскале как?
Ужас, как я устал от тупизны...
rainbow вне форума Ответить с цитированием
Старый 24.10.2008, 07:13   #6
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Цитата:
Меня интересует одна вещь:
В delphi можно проверить, если введена пустая строка:
А при чем здесь другие типы, если речь идет о проверке СТРОКИ? Вы же в Эдит вводите не число, а его строковое представление. Это потом вы его преобразуете в число. В паскале нет такой необходимости, введенная строка из цифр сразу воспринимается как число того типа, который объявлен для данной переменной. Если объявлено a:integer;, то после ввода 12345, это сразу будет число и переводить его как в Эдите не надо. Если обявлено a:string; и введем 12345, это будет строка и чтобы преобразовать ее в число есть процедура val(a,c,t); в которой строка 12345 превращается в число типа integer, а если a=12.568, то в число вещественного типа. Кстати если Вы такой дельфист, то должны бы знать, что процедуры val и str можно применять и в Делфи.
puporev вне форума Ответить с цитированием
Старый 24.10.2008, 08:09   #7
rainbow
Форумчанин
 
Регистрация: 06.09.2008
Сообщений: 156
По умолчанию

Цитата:
Сообщение от puporev Посмотреть сообщение
А при чем здесь другие типы, если речь идет о проверке СТРОКИ? Вы же в Эдит вводите не число, а его строковое представление. Это потом вы его преобразуете в число. В паскале нет такой необходимости, введенная строка из цифр сразу воспринимается как число того типа, который объявлен для данной переменной. Если объявлено a:integer;, то после ввода 12345, это сразу будет число и переводить его как в Эдите не надо. Если обявлено a:string; и введем 12345, это будет строка и чтобы преобразовать ее в число есть процедура val(a,c,t); в которой строка 12345 превращается в число типа integer, а если a=12.568, то в число вещественного типа. Кстати если Вы такой дельфист, то должны бы знать, что процедуры val и str можно применять и в Делфи.
Я Delphi занимаюсь всего полгода, и еще много не знаю, и насчет процедуры val я просто не знал, так как не проходил это.
Спасибо теперь будем знать.
А как кстати сделать проверку, если пользователь ввел не цифровой символ, а буквенный, ведь в этом случае будет ошибка.
Ужас, как я устал от тупизны...

Последний раз редактировалось rainbow; 24.10.2008 в 08:50.
rainbow вне форума Ответить с цитированием
Старый 24.10.2008, 09:42   #8
Nester
Форумчанин
 
Аватар для Nester
 
Регистрация: 22.10.2008
Сообщений: 103
По умолчанию

//Проверка строки на наличие букв
Function IS_NUMBER (S: String): Boolean;
Var n:Integer;
Begin
Result:=TRUE;
If Length(S)=0 Then Result:=FALSE;
For n:=1 To Length(S) Do
If Not ( S[N] In ['0'..'9']) Then Begin Result:=FALSE; Break; End
End;
Никто не знает больше чем не знаю я
Nester вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Введенные данные в DBGridEh не сохраняются prorock БД в Delphi 11 21.04.2011 14:35
Как увеличить длинну выпадающего списка: ДАННЫЕ-ПРОВЕРКА-СПИСОК kay Microsoft Office Excel 3 10.02.2009 12:59
Данные-проверка-список (список на другом листе) Inbox Microsoft Office Excel 7 26.12.2008 01:43
Пустые поля в запросах PetroPorsh Microsoft Office Access 1 16.10.2008 16:56
Как удалить пустые строки в WORD? KUNAR Microsoft Office Word 2 04.09.2007 20:56