Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 02.04.2013
Сообщений: 31

Печать текстовых файлов с добавлением символа переноса

21.09.2015, 11:42. Показов 1509. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте !
Задача такая: есть 2 каталога (исходный и каталог назначения).
Например, PRT1 - исходный каталог, Arck_PRT1 - каталог назначения.
В PRT1 периодически попадают текстовые файлы (иногда по одному, а иногда и сразу по нескольку) - *.prt.

По мере поступления в каталог PRT1 их нужно распечатывать на принтере и копировать в Arck_PRT1.
Причем, в каждом из этих файлов отсутствуют CR и LF (символы возврата каретки и переноса строки). Поэтому, в каждом файле при печати нужно вставлять символы CR и LF после 81 символа, например.
Т.е., каждый файл нужно распечатывать, нарезая строки по 81 символу. Ну, а в самом конце, что осталось.

Как это лучше сделать и более оптимально с использованием BAT-команд ?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.09.2015, 11:42
Ответы с готовыми решениями:

Печать символа без переноса каретки
Как напечатать символ чтобы каретка не перешла на следующий символ?

Печать текстового файла с размещением текста по 4 символа в сроку без переноса слов
Разработать программу печати текстового файла с размещением текста по 4 символа в сроку без переноса слов (заполняя недостающие до 64...

Проверить папку на наличие текстовых файлов и отправить на печать их
Добрый день, уважаемые знатоки Vb.net'a. Помогите мне решить одну задачу. Задача состоит в следующем: Необходимо раз в день (в...

6
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
21.09.2015, 12:03
Цитата Сообщение от alexansh1 Посмотреть сообщение
нарезая строки по 81 символу. Ну, а в самом конце, что осталось.
- можно вот это подробнее, пример-бы, если не сложно.
0
0 / 0 / 0
Регистрация: 02.04.2013
Сообщений: 31
21.09.2015, 12:17  [ТС]
Имею в виду, распечатать содержимое всего файла не одной "длинной" строкой, которая в нем содержится, а отдельными строками с фиксированной длиной в 81 символ. Т.е., "порезать" "длинную" строку файла и выдать на печать.
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
21.09.2015, 20:15
alexansh1,
Вряд ли cmd подходит для таких задач. Но так как с 2006 года на всех клиентских версиях windows (>=Vista) установлена новая командная оболочка - powershell, то советую посмотреть в ее сторону.
К примеру, ваша задача скриптом на PoSh решается примерно так:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function _PrintFile($file) {
if ($file -eq $null) {"файл=null";return}
    $block= New-Object char[] 81
    [IO.TextReader] $reader = [IO.File]::OpenText($file)
 
while (($count=$reader.ReadBlock($block, 0, 81)) -gt 0)
{  
    $newtext+=-join $block[0..($count-1)]+"`r`n"
}
 
$newtext|lp
$reader.Close();$newtext=$null
# копирование отправленного на печать файла в другой каталог
copy -Path $file -Destination d:\PRT2
}
# здесь указывается исходный каталог и маска файлов
$files=[IO.Directory]::GetFiles("D:\PRT1","*.prt")
# получив массив объектов файлов - отправляем их функции _PrintFile 
$files| %{_PrintFile $_}
Скрипт не создает промежуточных (порезанных) файлов - так как непонятно, а нужны ли они вам - а сразу отправляет отформатированный текст на печать принтеру по умолчанию.
PS: Не знаю, возможны ли проблемы с одновременной отправкой на печать сразу множества файлов (команда lp не ждет завершения задания, а сразу возвращает управление) - для отслеживания каждого задания нужен отдельный скрипт, но у меня три файлов отпечаталась без проблем.
0
0 / 0 / 0
Регистрация: 02.04.2013
Сообщений: 31
22.09.2015, 17:08  [ТС]
Спасибо, Garry за то, что откликнулись на мое обращение. Powershell не использовал ранее. Посмотрю, что это такое. Надо попробовать.
0
 Аватар для volodin661
6795 / 2292 / 348
Регистрация: 10.12.2013
Сообщений: 7,917
23.09.2015, 21:25
Цитата Сообщение от Garry Galler Посмотреть сообщение
Вряд ли cmd подходит для таких задач. Но так как с 2006 года на всех клиентских версиях windows (>=Vista) установлена новая командная оболочка - powershel
начиная с середины 90-х годов прошлого века для Windows появилось много бесплатных инструментальных
средств, пришедших главным образом из мира Unix, которые облагородили искажённое жаждой наживы лицо
операционной системы корпорации Microsoft.

вышепоставленная задача, например, решается с помощью одного из этих средств строчкой в 15-25 латинских букв:

Code
1
s/.{81}\K/\r\n/g  file.txt
,

и при скорости набора 250 знаков в минуту набор данной строки займёт около 6 секунд + несколько миллисекунд на исполнение, которыми можно пренебречь.
0
0 / 0 / 0
Регистрация: 02.04.2013
Сообщений: 31
24.09.2015, 10:15  [ТС]
Да, на unix можно писать скрипты. Я знаю.

"с помощью одного из этих средств..." - Какого из средств ?

Это у Вас просто комментарий, что в unix-овых инструментальных средствах можно написать красиво ? Я знаю.
Но здесь-то я обращаюсь за помощью в решении конкретной задачи.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.09.2015, 10:15
Помогаю со студенческими работами здесь

Сравнение двух текстовых файлов и вывод номера строки и позиции символа, где они отличаются
здравствуйте, уважаемые программисты!!!! пишу с надеждой, что вы мне поможете. дано такое задание: написать программу для сравнения...

Создание запроса с добавлением символа
требуется в SQL создать новую колонку обозвать её FIO и копировать данные имеющиеся в данной базе в созданную, плюс к каждой фамилии...

Печать документов word с добавлением счетчика
Всем привет. Я сам работаю веб программистом. Начальник попросил, если получится разобраться и написать скрипт для печати. Задача стоит...

Нахождение символа переноса строки
Доброго времени суток. Нужно найти индекс первого вхождения символа переноса строки (\n) в массиве символов. Функция strchr() такой...

Qtextstream чтение символа переноса строки /n /r
Ребята, всем привет, использовал сначала чтение файла через Qfile метод readline, потом перешёл на Qtextstream тот же самый метод, но...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru