Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

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

Меня интересует одна вещь:
В 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
Адрес: LocalHost
Сообщений: 103
Репутация: 39
По умолчанию

//Функция проверяет строку на пустоту
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
Репутация: 75

icq: 472185524
По умолчанию

Цитата:
Меня интересует одна вещь:
В 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,739
Репутация: 965
По умолчанию

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

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

Цитата:
Меня интересует одна вещь:
В 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
Репутация: 26
По умолчанию

Цитата:
Сообщение от 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
Адрес: LocalHost
Сообщений: 103
Репутация: 39
По умолчанию

//Проверка строки на наличие букв
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 вне форума   Ответить с цитированием
Ответ

Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


16:32.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru