Разделить текстовый файл на несколько - Turbo Pascal
Формулировка задачи:
В исходном текстовом файле находится информация о студенте: фамилия и группа. Программа сортирует студентов по группам и записывает в новый файл. Нужно, чтобы для каждой группы создавался отдельный файл. Пример исходного файла: Иванов 6101 Петров 6101 Сидоров 6103 Николаев 6103 Данилов 6105 Александров 6105 Все это записывается в виде: 6101 Иванов Петров 6103 Сидоров Николаев 6105 Данилов Александров Задача: Создать для каждой группы отдельный файл, который будет называться номером группы.
Решение задачи: «Разделить текстовый файл на несколько»
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.
Объяснение кода листинга программы
- В начале объявляются переменные: s, p и f. Переменная s типа String, переменная p типа Integer, а переменная f типа Text.
- Затем происходит назначение файла input.txt в переменную input с помощью функции Assign.
- С помощью функции Reset происходит сброса файла input.txt.
- Затем в цикле while не используется условие до тех пор, пока не будет достигнут конец файла с помощью функции SeekEOF.
- Внутри цикла происходит чтение строки s с помощью функции ReadLn. Значение переменной p устанавливается равным позиции пробела в строке s с помощью функции Pos.
- Затем с помощью функции Copy происходит копирование подстроки s от позиции p+1 до конца строки s в переменную f. Функция Append используется для добавления символа новой строки в конец строки f.
- Если при чтении файла произошла ошибка, то используется функция Rewrite для перезаписи файла f.
- Затем происходит запись подстроки s от позиции 1 до позиции p-1 в файл f с помощью функции WriteLn.
- После окончания записи закрывается файл f с помощью функции Close.
- Цикл while продолжается до тех пор, пока не будет достигнут конец файла.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д