Разделить текстовый файл на несколько - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

В исходном текстовом файле находится информация о студенте: фамилия и группа. Программа сортирует студентов по группам и записывает в новый файл. Нужно, чтобы для каждой группы создавался отдельный файл. Пример исходного файла: Иванов 6101 Петров 6101 Сидоров 6103 Николаев 6103 Данилов 6105 Александров 6105 Все это записывается в виде: 6101 Иванов Петров 6103 Сидоров Николаев 6105 Данилов Александров Задача: Создать для каждой группы отдельный файл, который будет называться номером группы.

Решение задачи: «Разделить текстовый файл на несколько»

textual
Листинг программы
var
  s: String;
  p: Integer;
  f: Text;
begin
  Assign(input,'input.txt'); Reset(input);
  while not SeekEOF do begin
    ReadLn(s); p:=Pos(' ',s);
    Assign(f,Copy(s,p+1,Length(s))); {$I-}Append(f);{$I+}
    if IOResult<>0 then Rewrite(f);
    WriteLn(f,Copy(s,1,p-1); Close(f);
  end;
end.

Объяснение кода листинга программы

  1. В начале объявляются переменные: s, p и f. Переменная s типа String, переменная p типа Integer, а переменная f типа Text.
  2. Затем происходит назначение файла input.txt в переменную input с помощью функции Assign.
  3. С помощью функции Reset происходит сброса файла input.txt.
  4. Затем в цикле while не используется условие до тех пор, пока не будет достигнут конец файла с помощью функции SeekEOF.
  5. Внутри цикла происходит чтение строки s с помощью функции ReadLn. Значение переменной p устанавливается равным позиции пробела в строке s с помощью функции Pos.
  6. Затем с помощью функции Copy происходит копирование подстроки s от позиции p+1 до конца строки s в переменную f. Функция Append используется для добавления символа новой строки в конец строки f.
  7. Если при чтении файла произошла ошибка, то используется функция Rewrite для перезаписи файла f.
  8. Затем происходит запись подстроки s от позиции 1 до позиции p-1 в файл f с помощью функции WriteLn.
  9. После окончания записи закрывается файл f с помощью функции Close.
  10. Цикл while продолжается до тех пор, пока не будет достигнут конец файла.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.5 из 5
Похожие ответы