Целью данной статьи будет изучение алгоритмов работы с текстовыми файлами, TXT и CSV. Очень часто приходится использовать данные форматы для обмена данными между несколькими базами, в том числе и отличными от 1С.
- Чтение текстового файла
- Если файл небольшой можно использовать объект ТекстовыйДокумент (пример чтения )
- Запись текстового файла
- Запись через «ТекстовыйДокумент»
- Чтение файла CSV
- Подведем итоги:
Чтение текстового файла
Открытие текстового файла для чтения описывается конструкцией:
Текст = Новый ЧтениеТекста ;
Текст . Открыть ( ПолноеИмяФайла );
В данной конструкции создается неинициализированный объект ЧтениеТекста, а для инициализации используется метод Открыть()
Пример:
Процедура ПрочитатьФайл ( Команда )
// Вставить содержимое обработчика.
//Открываем диалог выбора файла для чтения
ВыборФайла = Новый ДиалогВыбораФайла ( РежимДиалогаВыбораФайла . Открытие );
ВыборФайла . МножественныйВыбор = Ложь;
ВыборФайла . Фильтр = НСтр ( «ru = ‘Все файлы (*.*)|*.*’» );
Как изменить приложение по умолчанию Андроид / Открывать файлы в нужном приложении
Если ВыборФайла . Выбрать () Тогда
ПолноеИмяФайла = ВыборФайла . ПолноеИмяФайла ;
Текст = Новый ЧтениеТекста ;
Текст . Открыть ( ПолноеИмяФайла );
Пока Стр <> Неопределено Цикл // строки читаются до символа перевода строки
Стр = Текст . ПрочитатьСтроку ();
Сообщить ( Стр );
КонецЦикла;
Текст . Закрыть ();
КонецПроцедуры
Перебор строк в текстовом документе реализован при помощи функции ПрочитатьСтроку().
После чтения файла не забываем его закрыть функцией Закрыть().
Объект ЧтениеФайлов подходит даже для больших объектов.
Если файл небольшой можно использовать объект ТекстовыйДокумент (пример чтения )
Текст = Новый ТекстовыйДокумент ;
ПолноеИмяФайла = «D:1CПример.txt» ;
Текст . Прочитать ( ПолноеИмяФайла ) ;
КоличествоСтрок = Текст . КоличествоСтрок ( ) ;
Для Счетчик = 1 по КоличествоСтрок Цикл
ТекСтрока = Текст . ПолучитьСтроку ( Счетчик ) ;
Сообщить ( ТекСтрока ) ;
КонецЦикла ;
Запись текстового файла
Запись в текстовый файл происходит приблизительно по тому же сценарию:
Процедура ЗаписатьФайл ( Команда )
//Открываем диалог выбора файла для записи
СохранениеФайла = Новый ДиалогВыбораФайла ( РежимДиалогаВыбораФайла . Сохранение );
СохранениеФайла . Фильтр = НСтр ( «ru = ‘Все файлы (*.txt)|*.txt’» );
Если СохранениеФайла . Выбрать () Тогда
Текст = Новый ЗаписьТекста ;
Текст . Открыть ( СохранениеФайла . ПолноеИмяФайла , КодировкаТекста . ANSI );
Текст . ЗаписатьСтроку ( «Программируем в 1С 8.2» );
Текст . Закрыть ();
КонецПроцедуры
Записать текст в документ можно при помощи функции ЗаписатьСтроку() — в данном случае после записанной строки автоматически добавится разделитель строк и следующая запись начнется с новой строки. Если же необходимо добавить в строку дополнительно текст, то можно воспользоваться функцией без переноса строки — Записать().
Запись через «ТекстовыйДокумент»
Пример не содержит проверок на наличие файла, файл перезаписывается. При необходимости добавления используйте метод Прочитать().
Работа с файлами в Python. Чтение и запись данных
Текст = Новый ТекстовыйДокумент ;
Текст . ДобавитьСтроку ( «1» ) ;
Текст . ДобавитьСтроку ( «2» ) ;
Текст . Записать ( ) ;
Чтение файла CSV
CSV (от англ. Comma-Separated Values — значения, разделённые запятыми) — текстовый формат, предназначенный для представления табличных данных. Каждая строка файла — это одна строка таблицы. Значения отдельных колонок разделяются разделительным символом (delimiter) — запятая (,) или точка с запятой (;). (Википедия)
Такой формат часто используют для выгрузки данных из различных баз отличных от 1С. Ниже представлен алгоритм чтения данного формата на основе обычного чтения текстового файла с анализом строки и разбиением ее на поля.
Пример:
Процедура ПрочитатьЦСВ ( Команда )
// Вставить содержимое обработчика.
Перем Стр , Сч ;
//Открываем диалог выбора файла для чтения
ВыборФайла = Новый ДиалогВыбораФайла ( РежимДиалогаВыбораФайла . Открытие );
ВыборФайла . МножественныйВыбор = Ложь;
ВыборФайла . Фильтр = НСтр ( «ru = ‘Все файлы (*.csv)|*.csv’» );
Если ВыборФайла . Выбрать () Тогда
ПолноеИмяФайла = ВыборФайла . ПолноеИмяФайла ;
Иначе Возврат;
Текст = Новый ЧтениеТекста ;
Текст . Открыть ( ПолноеИмяФайла );
Пока Стр <> Неопределено Цикл
Стр = Текст . ПрочитатьСтроку ();
//Создаем массив в который будем добавлять выбранные поля
МассивПолей = Новый Массив ();
//Цикл разбивает строку на подстроки по разделителю «;» и заносит их в массив
Пока СтрДлина ( Стр ) > 0 Цикл
//Находим позицию первого вхождения символа «;»
ПозицияРазделителя = Найти ( Стр , «;» );
//Считываем символы до первого найденного символа «;»
МассивПолей . Добавить ( Лев ( Стр , ПозицияРазделителя — 1 ));
//Удаляем из строки найденную подстроку и повторяем цикл с оставшейся строкой
Стр = Прав ( Стр , СтрДлина ( Стр ) — ПозицияРазделителя );
КонецЦикла;
//Выводим на экран первое прочитанное поле
Попытка Сообщить ( МассивПолей [ 0 ]); Исключение КонецПопытки;
КонецЦикла;
Текст . Закрыть ();
КонецПроцедуры
Для типовых конфигураций для «парсинга» строки возможно использование функции общего назначения РазложитьСтрокуВМассивПодстрок(Текст, «.»), в которой можно задать произвольный разделитель..
Подведем итоги:
Для чтения и записи текстового файла в 1С существуют 3 объекта ЧтениеФайла, ЗаписьФайла, ТекстовыйДокумент.
Последний более универсальный, но медлительный, т.к. считывает файл сразу. Если памяти мало, его использование может вызвать ошибку нехватки памяти. Данный объект является основой для интерфейсного объекта «ПолеТекстовогоДокумента»
Возможно использовать данные функции для чтения/записи HTML и log файлов.
Для работы с XML (хотя они тоже текстовые) рекомендуется использовать специализированные объекты ЧтениеXML, ЗаписьXML.
Изобилие товаров устраняет дефицит, широкой рекламой устраняется психическая неустойчивость.
— Жан Бодрийа
Источник: capitally.ru
Как прочитать текстовый файл
В Windows: Microsoft Notepad, Microsoft WordPad, Microsoft Word, Microsoft Word Viewer, Corel WordPerfect Office X, Helios TextPad, Notepad++, Notepad2, Sublime Text, AbiWord, IBM Lotus Symphony, PSPad, Programmer’s Notepad, Vim, StarOffice, Ability Write, Любой другой текстовый редактор
В Mac OS: Apple TextEdit, Bare Bones BBEdit, MacroMates TextMate, Microsoft Word, NeoOffice, Любой другой текстовый редактор
В Linux: Leafpad, gedit, KWrite, KWord, Любой другой текстовый редактор
Кроссплатформенное ПО: OpenOffice.org Writer
В Windows Mobile/CE: FB2 Reader, Raccoon Reader, READU, Freda для Windows Phone, Bookviser, Tiny eBook Reader
В Symbian: OfficeSuite
В Google Android: OfficeSuite Viewer, OfficeSuite Professional, ThinkFree Mobile, Kingsoft Office, QuickOffice Pro
В Apple iOS (iPhone, iPad, iPod): Files Reader, Easy TXT Reader, iBouquiniste, KyBook
Описание расширения TXT
Популярность:
Разработчик:
Расширение TXT традиционно используется для простых текстовых файлов. Многие приложения и текстовые редакторы в MS-DOS, UNIX, Windows, Mac OS используют настоящее расширение файла для текстового файла. Только таблицы кодировки символов может варьироваться от простого ASCII до UTF и т.д., которые зависят от языка автора и родной кодировки операционной системы. Различные устройства, такие как смартфоны и Amazon Kindle также распознают, текстовые файлы.
Текстовые файлы также часто используются для различных текстовых логов и отчетов, создаваемых программами. Текстовые файлы могут быть как форматированными так и неформатированными. Файл с расширением txt – это неформатированный текстовый файл, другими примерами неформатированного текстового файла является файлы с исходным кодом программ, например, .c. Форматированный тест (текст с разметкой) обычно хранится в файлах с расширением, соответствующим формату или языку разметки — .rtf, .htm, .html.
Очень часто встречается файл README.txt, по сути это обычный текстовый файл, который включен в программное обеспечение инсталляторов, которая предоставляет информацию о программном обеспечении. Пользователи должны прочитать этот файл перед использованием программного обеспечения.
Новый текстовый документ.txt – такое имя дается в Windows по умолчанию для новых текстовых файлов, созданных из контекстного меню (нажать на правую кнопку мыши на рабочем столе и выбрать Создать -> Текстовый документ).
Безымянный.txt – имя по умолчанию, которое дается в Блокноте при создании нового файла.
Прочитайте текстовый файл с помощью FileReader в Java
В этом посте мы обсудим, как прочитать содержимое текстового файла с помощью FileReader в Java.
Как создать файл в терминале
Философия Linux гласит — всё в системе есть файл. Мы ежедневно работаем с файлами, и программы, которые мы выполняем, — тоже файлы. В разных случаях нам может понадобиться создать в системе файлы определённого типа. Если вам интересно, какие типы файлов в Linux можно создать, смотрите отдельную статью.
Конечно, всё очень просто делается с помощью мышки и файлового менеджера. Но если вы дружите с клавиатурой, создать файл через терминал Linux намного быстрее и, как вы увидите, эффективнее. В терминале вы можете не только создавать пустые файлы, но и создавать файл с уже готовым содержимым, файлы определённого размера, и с нужными метаданными.
Как всё это делать, вы узнаете из этой статьи. Мы рассмотрим все доступные средства создания файлов в терминале Linux. Поехали!
1. Редактор nano
Самый распространённый способ создать текстовый файл в Linux — это использовать консольные текстовые редакторы. Например nano. После ввода команды открывается редактор, и вы прописываете нужный текст, например:
2. Редактор Vi
Тот же принцип, но программа намного серьёзнее:
Если вы в первый раз столкнулись с vim, то предупрежу — это необычный редактор. Здесь есть два режима: режим вставки и командный. Переключаться между ними можно с помощью кнопки Esc. Для выхода из редактора в командном режиме наберите :q, для сохранения файла — :w. Вообще, Vim — очень полезный инструмент.
Чтобы узнать побольше о его возможностях и выучить основы, выполните: vimtutor.
Понятное дело, в этом пункте можно говорить и о других редакторах, в том числе и с графическим интерфейсом. Но мы их опустим и перейдём к другим командам создания файла в Linux.
3. Оператор перенаправления >
Это, наверное, самая короткая команда для создания файла в Linux:
Оператор оболочки для перенаправления вывода позволяет записать вывод любой команды в новый файл. Например, можно подсчитать md5 сумму и создать текстовый файл в Linux с результатом выполнения.
md5sum файл > ~/sum.md5
Это рождает ещё несколько способов создания файла в Linux, например, выведем строку в файл с помощью команды echo:
echo «Это строка» > файл.txt
Этот способ часто используется для создания конфигурационных файлов в Linux, так сказать, на лету. Но заметьте, что sudo здесь работать не будет. С правами суперпользователя выполниться echo, а запись файла уже будет выполнять оболочка с правами пользователя, и вы всё равно получите ошибку Access Denied.
Ещё тем же способом можно сделать примитивный текстовый редактор для создания файла. Утилита cat без параметров принимает стандартный ввод, используем это:
После выполнения команды можете вводить любые символы, которые нужно записать в файл, для сохранения нажмите Ctrl+D.
А ещё есть утилита printf, и здесь она тоже поддерживает форматирование вывода:
printf «Это %d текстовая строкаn» 1 > файл
Этот способ создать файл в Linux используется довольно часто.
4. Оператор перенаправления вывода >>
Также можно не только перезаписывать файл, а дописывать в него данные, с помощью перенаправления оператора >>. Если файла не существует, будет создан новый, а если существует, то строка запишется в конец.
echo «Это текстовая строка» > файл.txt
$ echo «Это вторая текстовая строка» >> файл.txt
5. Оператор перенаправления 2>
Первые два оператора перенаправления вывода команды в файл использовали стандартный вывод. Но можно создать файл в терминале Ubuntu и перенаправить в него вывод ошибок:
Если команда не выдает ошибок, файл будет пустым.
6. Оператор перенаправления и head
С помощью команды head можно выбрать определённый объем данных, чтобы создать текстовый файл большого размера. Данные можно брать, например, с /dev/urandom. Для примера создадим файл размером 100 мегабайт:
base64 /dev/urandom | head -c 100M > файл
7. Команда cp
Команда cp используется для копирования файлов в Linux. Но с её помощью можно и создать файл. Например, чтобы создать пустой файл, можно просто скопировать /dev/null:
cp /dev/null файл
8. touch
Вот мы и подобрались к непосредственному созданию файлов через терминал, для этого в Linux есть специальная утилита touch. Она позволяет создать пустой файл в Linux, при этом указывать дату создания, права доступа и другие метаданные.
Чтобы создать пустой файл Linux, просто наберите:
Можно создать несколько пустых файлов сразу:
touch файл1 файл2
Опция -t позволяет установить дату создания. Дата указывается опцией -t в формате YYMMDDHHMM.SS. Если не указать, будет установлена текущая дата. Пример:
touch -t 201601081830.14 файл
Можно использовать дату создания другого файла:
touch -r шаблон файл
Также можно установить дату последней модификации, с помощью опции -m:
touch -m -t 201601081830.14 файл
Или дату последнего доступа:
touch -a -t 201601081830.14 файл
Чтобы посмотреть, действительно ли задаётся информация, которую вы указали, используйте команду stat:
9. Утилита dd
Это утилита для копирования данных из одного файла в другой. Иногда необходимо создать файл определённого размера в Linux, тогда можно просто создать его на основе /dev/zero или /dev/random, вот так:
dd if=/dev/zero of=~/файл count=20M
Параметр if указывает, откуда брать данные, а of — куда записывать, count — необходимый размер. Ещё можно указать размер блока для записи с помощью bs, чем больше размер блока, тем быстрее будет выполняться копирование.
Создание специальных файлов в Linux
В Linux, кроме выше рассмотренных обычных текстовых и бинарных файлов, существуют ещё и специальные файлы. Это файлы сокетов и туннелей. Их нельзя создать обычными программами, но для этого существуют специальные утилиты, смотрите подробнее в статье, ссылку на которую я дал вверху.
Выводы
Это были все возможные команды для создания файла в Linux. Если вы знаете другие, которые следовало бы добавить в статью — поделитесь в комментариях.
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
Источник: losst.pro