Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Маркер конца строки





Мы использовали в таблицах выполнения символ / чтобы обозначать маркер конца строки, который не является печатным символом. Мы не использовали в наших программах выражения вида WRITELN(‘/’) чтобы избежать путаницы.

 

На самом деле, Паскаль-машина в качестве маркера конца строки использует не символ /, а некий специальный символ, который не имеет визуального отображения. Этот символ помещается в конец строки всякий раз, когда выполняется выражение WRITELN.

 

Но что происходит при чтении маркера конца строки? Рассмотрим следующий код:

REWRITE(F1);

WRITE(F1, ‘#’);

WRITELN(F1);

RESET(F1);

READ(F1, Ch1);

READ(F1, Ch2);

 

В Ch1 будет помещен символ #, а Ch2 будет иметь значение пробела, как печатного эквивалента символа маркера конца строки.

 

Если границы строк должны контролироваться программой, необходимо иметь возможность определять их. Не имеет смысла проверять, является ли каждый считанный символ пробелом, на который был заменен маркер конца строки, поскольку пробелы встречаются внутри строк.

В Паскале имеется стандартное слово EOLN, которое может быть использовано как <условие> для проверки маркера конца строки который может быть считан при следующей операции READ. Когда в INPUT в позиции курсора находится маркер конца строки, EOLN принимает значение TRUE, в противном случае EOLN принимает значение FALSE. Аналогичное справедливо для текстовых файлов. При чтении файла F1 EOLN(F1) вернет TRUE, если в позиции курсора находится маркер конца строки.

Предположим, F1 содержит одну строку, в которой имеется один символ A, законченную маркером конца строки. Вот таблица выполнения, которая иллюстрирует поведение EOLN.

 

 

После выполнения F1 EOLN(F1) Ch1 Ch2
RESET(F1) READ(F1, Ch1) READ(F1, Ch2) A / A / A/_ FALSE TRUE ? ? A A ? ? □

 

С помощью символа □ мы явно указываем символ пробела. Значение? которое принимает EOLN(F1) после того как считан маркер конца строки, означает, что значение EOLN не определено когда в файле нет больше входных символов. Большинство реализаций Паскаль-машины что-то возвращают в этом случае, но на этот счет не существует какого-либо соглашения или стандарта, поэтому не стоит полагаться на это при разработке программ, поэтому EOLN не может быть использован, когда входная последовательность прочитана полностью.

 

Date: 2015-07-22; view: 890; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию