Текстовые файлы

Сентябрь 25, 2010 / Автор AlexR / Рубрики Учебник по паскалю / Комментировать

Теперь разберемся с командами, которые могут быть использованы только в случае одного из видов файловых переменных.

Append (<имя ф.п.>); — открывает текстовый файл, ставя указатель на его конец. Таким образом, можно дописать какую-нибудь информацию.

Readln (<имя ф.п.>, <список переменных>); — считывает информацию из файла в переменные и переводит указатель в файле на следующую строку.

Writeln (<имя ф.п.>, <список переменных>); — записывает в файл информацию, содержащуюся в переменных, и переводит указатель на следующую строку.

Eoln (<имя ф.п.>); — возвращает True, если достигнут конец строки в файле, иначе False.

Пример:

Program PutGetBirthdays;
type TBirthday = record
    day:string;
    month:string;
    year:string;
end;

type TFIO = record
    Family: string ;
    Name: string ;
    Otch: string ;
end;

type TLichn = record
    FIO: TFIO;
    Birt: TBirthday;
end;

var p:TLichn;
    f:text;
    ans:string[3];
    i,n:byte;

//Функция посимвольного разбора данных в файле
function OsymB (OsmB:string):string;
Var SymB:char;
Begin
    //Цикл пока не достигнем конца строки, файла или данного
    repeat
        read(f,SymB); //читаем символ
        //Если символ не пуст, то формируем строку
        if (Symb<>' ') and (Symb<>'') then OsmB:=OsmB+SymB;
    until (Symb=' ') or (EOF(f)=True) or (Eoln(f)=True);
    Result:=OsmB; //Возвращаем полученную строку
End;
Begin
    Assign (f,'C:\\temp\birthdays.txt');
    Rewrite (f);
    n:=1;

    //Вводим нужную информацию
    repeat
        writeln ('Ввод ',n,'-го человека:');
        write ('Введите фамилию:');
        readln (p.FIO.family);
        write ('Введите имя:');
        readln (p.FIO.name);
        write ('Введите отчество:');
        readln (p.FIO.Otch);
        write ('Введите день рождения:');
        readln (p.Birt.day);
        write ('Введите месяц рождения:');
        readln (p.Birt.month);
        write ('Введите год рождения:');
        readln (p.Birt.year);
        write ('Продолжить ввод?(да/нет):');
        readln (ans);
        //Записываем данные в файл, разделяя пробелами
        write (f,p.FIO.family,' ',p.FIO.name,' ',p.FIO.Otch,' ');
        write (f,p.Birt.day,' ',p.Birt.month,' ',p.Birt.year);
        writeln (f); //Переходим на следующую строчку в файле
        n:=n+1;
    until ans='нет';
    close (f);     //Закрываем файл
    reset (f);     //Открываем
    i:=0;
    //Выводим
    while (i
									

Комментарии закрыты.