Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - Разбите текстового файла на отдельные файлы по определенному условию

Ответить
Настройки темы
Любой язык - Разбите текстового файла на отдельные файлы по определенному условию

Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: Artas28
Дата: 04-04-2019
Здравствуйте. Нужна помощь. Есть список программ, скаченных с ЧПУ станка одним файлом. Необходимо этот файл разделить на отдельные файлы, например по началу программы ("O").
Т.е. если в программе присутствует O, то он должен от неё и до другого O, вырезать эту часть текста и создать новый документ с этим текстом.


Пример:

Скрытый текст

O0009(Bolt M14x1_6GRANNIK)
(ROMB)
T1M3S2700G99
G0X18.Z5.
G01Z0.2F0.1
X-1.
Z2.
G0X12.
G1Z-1.7F0.14
X12.3
Z1.
X10.
Z-1.3
X10.3
Z1.
X8.
........
T8
G0X0
Z0
M05
G4X0.5
M99
O0021
M70
M00
M71
M30

O0004(KR M18*1.5 L25.5)
(ROMB)
T1M3S3500G99
G0Z3.0M8
X3.
G1Z0.F0.1
X18.Z-3.6F0.25
Z-20.3
G0X19.Z-3.73
G1X18.
X-0.2Z0.F0.15
G0Z25.
.......

Отправлено: 14:27, 04-04-2019

 

Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата megaloman:
Естественно, вместо моих путей прописать Ваши реальные »
@Echo Off
cls
Set "BoxIn=C:\Newfolder\FileName.txt"
Set "BoxOut=C:\Newfolder\"
Set "Delim=O"

Set "OutFile=Err.txt"
FOR /F "usebackq delims=" %%i IN ("%BoxIn%") DO Call :Out "%BoxOut%" "%%i"
pause
Exit /B 0

:Out
Set "Str=%~2"
If "%Str:~0,1%"=="%Delim%" FOR /F "delims=(" %%j IN ("%Str%") DO (
Set "OutFile=%%j"
2>nul Del "%~1\%%j"
)
>>"%~1\%OutFile%" Echo %~2
Exit /B 0

Так?

Отправлено: 14:15, 05-04-2019 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата Artas28:
что бы он файл называл не 1 или dest_1 а по названию программы в файле, если он вырезал O0003 то и файл будет называться 0003 или 3 или О0003 ? »
Код: Выделить весь код
$sDelim = 'O'
(Get-Content -Path 'C:\Мои проекты\0257\Source.txt' -Raw) -split "`r`n$sDelim" |`
    ForEach-Object -Begin {
        $sDelim = ''
    } -Process {
        $sDestName = $sDelim + ($_ -split "`r`n")[0] -replace '\<|\>|:|"|/|\\|\||\?|\*', '_'
        Set-Content -Path "C:\Мои проекты\0257\$sDestName.txt" -Value $($sDelim + $_)
        if($sDelim -eq '') { $sDelim = 'O' }
    }

Последний раз редактировалось Iska, 06-04-2019 в 03:22. Причина: Уточнения в коде

Это сообщение посчитали полезным следующие участники:

Отправлено: 18:45, 05-04-2019 | #12


Ветеран


Contributor


Сообщения: 2722
Благодарности: 1692

Профиль | Отправить PM | Цитировать


Цитата Artas28:
Set "BoxOut=C:\Newfolder\" »
Без слэжа
Код: Выделить весь код
Set "BoxOut=C:\Newfolder"

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Отправлено: 19:10, 05-04-2019 | #13



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - Разбите текстового файла на отдельные файлы по определенному условию

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBA - Разбивка строк общего файла на отдельные csv файлы jordan_74 Программирование и базы данных 64 22-11-2018 08:50
CMD/BAT - Скопировать файлы из папок по определенному названию JKop Скриптовые языки администрирования Windows 19 28-10-2016 21:43
CMD/BAT - Сборка текстового файла из содержимого другого текстового файла icomboy Скриптовые языки администрирования Windows 0 10-09-2013 15:17
CMD/BAT - [решено] Копирование файла по условию его содержимого XSubZero Скриптовые языки администрирования Windows 3 16-05-2012 17:13
VBA - [решено] Разбор листа Excel по строкам в отдельные файлы Debugger Программирование и базы данных 3 14-03-2012 15:46




 
Переход