Символьный файл содержит пробелы. Сжать этот файл (убрать пробелы) - Pascal
Формулировка задачи:
Символьный файл содержит пробелы. Сжать этот файл (убрать пробелы). В текстовом файле, написать текст и из него убрать пробелы. Как привязать файл, и как пробелы удалить, через какую команду?
Решение задачи: «Символьный файл содержит пробелы. Сжать этот файл (убрать пробелы)»
textual
Листинг программы
var n, k: longword; f: file of char; c: char; begin assign(f, 'text.txt'); reset(f); n := 0; for k := 0 to filesize(f) - 1 do begin seek(f, k); read(f, c); if c <> ' ' then begin seek(f, n); write(f, c); inc(n) end end; seek(f, n); truncate(f); close(f) end.
Объяснение кода листинга программы
- Объявляются переменные:
nиkтипа longword для хранения числовых значенийfтипа file of char для работы с файломcтипа char для хранения символов из файла
- Происходит присвоение файла
text.txtпеременнойfс помощью процедуры assign. - Выполняется открытие файла для чтения с помощью процедуры reset.
- Переменной
nприсваивается значение 0. - Выполняется цикл от 0 до размера файла минус 1 (filesize(f) - 1).
- В теле цикла:
- Устанавливается позиция чтения в файле на позицию
kс помощью процедуры seek. - Символ из файла считывается в переменную
cс помощью процедуры read. - Проверяется, не равен ли считанный символ пробелу.
- Если символ не равен пробелу, то:
- Устанавливается позиция записи в файле на позицию
nс помощью процедуры seek. - Записывается символ
cв файл с помощью процедуры write. - Увеличивается значение переменной
nна 1 с помощью функции inc.
- Устанавливается позиция чтения в файле на позицию
- Устанавливается позиция записи в файле на позицию
nс помощью процедуры seek. - Обрезается файл до позиции
nс помощью процедуры truncate. - Закрывается файл с помощью процедуры close.
Код выполняет удаление пробелов из символьного файла
text.txt, сжимая его содержимое.