Показать сообщение отдельно
Старый 27.01.2010, 02:34   #7 (permalink)
Long Cat
Banned
 
Регистрация: 01.09.2009
Сообщений: 4,396
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 2544
По умолчанию

С помощью операторов read и readln можно читать данные из текстового файла, но делать это нужно с осторожностью.
Оператор read считывает данные до разделителя, разделителем считается пробел, табуляция или конец строки (для чисел), при этом указатель файла остается перед концом строки.
readln считывает строку целиком и ставит указатель файла после символа конца строки.
Отсюда следует, что если при чтении текстового файла дважды вызвать read подряд, произойдет следующее: первый read дойдет до конца строки и остановится там, второй read начнет читать данные, но в качестве данных считает тот же конец строки и остановится на том же месте, ничего не считав.
Таким образом, read при чтении из текста подходит, если нужно читать числа, записанные в несколько колонок через разделитель (пробел или табуляцию).
При этом, после каждой операции чтения следует проверять, не повстречался ли в файле конец строки (функция eoln()) и если повстречался, перейти на следующую, с помощью вызова readln.
При этом, читать строки с помощью read нельзя, для этого существует readln.
Это описание соответствует тому, что описано в руководстве к очень старой версии Паскаля. Современные компиляторы могут вести себя неправильно.
Long Cat вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070