Программа


Program Eraser;
{ Удаление из текстового файла
  строк с N-ой по K-ю }
Uses Dos;                                           { Подключение модуля Dos }
Var FileName:string[95];                         { Имя модифицируемого файла }
    FirstString,LastString,            { Первая и последняя удаляемые строки }
    MeterString:integer;                                     { Счетчик строк }
    TempFileName:string[12];                                { Временный файл }
    Ch:char;                       { Буфер для переноса текста между файлами }
    FormerText,LastText:text;   { Файловые переменные: источник и получатель }
BEGIN
  Writeln('Введите имя обрабатываемого файла ');        { Приглашение и ввод }
  Readln(FileName);                                        { исходного файла }
  Write('Введите первую удаляемую строку ');            { Приглашение и ввод }
  Readln(FirstString);                             { первой удаляемой строки }
  Write('Введите последнюю удаляемую строку ');         { Приглашение и ввод }
  Readln(LastString);                              { первой удаляемой строки }
  repeat                          { Цикл формирования имени временного файла }
    Str(Random(10000),TempFileName);    { Формирование случайной части имени }
    TempFileName:='Eras'+TempFileName+'.$$$' { Формирование постоянной части }
  until FSearch(TempFileName,'.\')='';   { Выход из цикла при получении имени
                                    несуществующего в текущем каталоге файла }
  Assign(FormerText,FileName);            { Связывание файловых переменных с }
  Assign(LastText,TempFileName);                          { с именами файлов }
  Reset(FormerText);                   { Открытие исходного файла для чтения }
  Rewrite(LastText);                  { Открытие файла-получателя для записи }
  MeterString:=1;                                 { Установка счетчика строк }
  while not EOF(FormerText) do                        { Цикл обработки файла }
    Begin
      Read(FormerText,Ch);                          { Чтение исходного файла }
      if (MeterString<FirstString)or(MeterString>LastString)
                        { Если текущая строка вне диапозона удаляемых строк, }
        then Write(LastText,Ch);               { то запись в файл-получатель }
      if EOLn(FormerText) then Inc(MeterString)  { Подсчет прочитанных строк }
    End;
  Close(FormerText);                              { Закрытие исходного файла }
  Close(LastText);                               { Закрытие файла-получателя }
  Erase(FormerText);                               { Стирание исходногофайла }
  Rename(LastText,FileName)   { Переименовывание временного файла в исходный }
END.


Бесплатные примеры программ
Примеры написанных программ
Помощь студентам по программированию