Чтение строк
В программе строковая переменная может быть объявлена с указанием длины или без нее.
Например:
stroka1: string [10]; stroka2: string;
При чтении из файла значения строковой переменной, длина которой явно задана в ее объявлении, считывается столько символов, сколько указано в объявлении, но не больше, чем в текущей строке.
При чтении из файла значения строковой переменной, длина которой явно не задана в объявлении переменной, значением переменной становится оставшаяся после последнего чтения часть текущей строки. Другими словами, если надо прочитать из файла всю строку, то объявите строковую переменную, длина которой заведомо больше самой длинной строки файла, и считывайте строки в эту переменную.
Если одной инструкцией readln осуществляется ввод нескольких, например, двух переменных, то первая переменная будет содержать столько символов, сколько указано в ее объявлении или, если длина не указана, всю строку файла. Вторая переменная будет содержать оставшиеся символы текущей строки или, если таких символов нет, не будет содержать ни одного символа (длина строки равна нулю).
Пусть, например, текстовый файл freinds.txt содержит строки:
Косичкина Маша Васильев Антон Цой Лариса
В табл. 7.1 приведено несколько вариантов объявления переменных, инструкции чтения из файла freinds.txt и значения переменных после выполнения инструкций чтения.
Таблица 7.1. Примеры чтения строк из файла.
Объявления | Инструкция чтения переменных из файла | Значение переменных после чтения из файла |
---|---|---|
fam:string[15] | Readln (f, fam, name) | fam = 'Косичкина' |
name:string[10] | name= 'Маша' | |
fam, name:string; | Readln (f, fam, name) | fam= ' Косичкина Маша ' name= ' ' |
drug:string[80] | Readln (f, drug) | drug ='Косичкина Маша' |