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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.02.2013, 19:47   #1
MisterDie
1100001001
Пользователь
 
Аватар для MisterDie
 
Регистрация: 25.01.2013
Сообщений: 49
По умолчанию Проблема со строковой переменной

Доброго времени суток.
Сегодня столкнулся с такой проблемой:
Код:
var
  s: string;

begin
  while 1 = 1 do
    read(s);
end.
1 раз вводит значение, а затем, как бы "зависает".
Если не трудно расскажите, как от этого избавится.
Заранее Спасибо!
P.S. Работаю на PascalABC.NET
МаГиЯ
мАгИя
МаГиЯ
MisterDie вне форума Ответить с цитированием
Старый 27.02.2013, 20:23   #2
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Цитата:
как от этого избавится
Код:
readln(s);
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 27.02.2013, 20:33   #3
MisterDie
1100001001
Пользователь
 
Аватар для MisterDie
 
Регистрация: 25.01.2013
Сообщений: 49
Хорошо

Спасибо!Набранное вами сообщение слишком короткое. Увеличьте ваше сообщение до 10 символов.
МаГиЯ
мАгИя
МаГиЯ
MisterDie вне форума Ответить с цитированием
Старый 27.02.2013, 20:36   #4
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,306
По умолчанию

Не очень очевидное условие
Код:
while 1 = 1 do
Надо помнить, что ввод строки завершается нажатием клавиши Enter (ВК).
процедура read() читает введеную строку до символа ВК и следующий вызов этой процедуры зависает.
процедура readln() читает строку и очищает буфер ввода ...

read() полезна, когда надо обработать символы вводимой строки последовательно (форматной строки) - ввод нескольких символов, чисел в одной строке. Завершать ввод надо обязательно чтением последнего символа или группы процедурой readln().


Вроде так ...

Ну вот, не успел. Какие то большие задержи ...
Как-то так, ...
ViktorR на форуме Ответить с цитированием
Старый 27.02.2013, 21:41   #5
MisterDie
1100001001
Пользователь
 
Аватар для MisterDie
 
Регистрация: 25.01.2013
Сообщений: 49
Хорошо

Цитата:
Сообщение от ViktorR Посмотреть сообщение
Не очень очевидное условие
Код:
while 1 = 1 do
Надо помнить, что ввод строки завершается ... или группы процедурой readln().

Ну вот, не успел
Спасибо! Теперь стало понятнее)
P.S. кстати про
Код:
while 1=1 do
- это я для примера привел.
МаГиЯ
мАгИя
МаГиЯ
MisterDie вне форума Ответить с цитированием
Старый 27.02.2013, 21:43   #6
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Цитата:
while 1=1 do
грамотнее писать
Код:
while true do...
Вадим Мошев вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с переменной Adblock PHP 8 16.01.2011 20:02
Занесение содержимого строковой переменной в поток DannerDOS Общие вопросы Delphi 5 06.05.2010 13:28
Скопировать текст из строковой переменной в поле ввода чужой програмы Ckomoroh Общие вопросы Delphi 4 14.12.2009 10:49
Как удалить часть строковой переменной Oooleg Microsoft Office Excel 1 21.07.2009 16:20
TMemoryStream присвоить строковой переменной inndim Общие вопросы Delphi 3 06.05.2009 11:36