View previous topic :: View next topic |
Author |
Message |
hawk777
Joined: 27 Dec 2008 Posts: 61
|
(Separately) Posted: Wed Jan 06, 2010 00:07 Post subject: Построчное разрезание TXT-файла |
|
|
Здравствуйте уважаемые пользователи ТС. Скажите пожалуйста как можно разбить несколько текстовых файлов построчно, может плагин какой есть или специализированная прога? Подскажите пожалуйста, очень надо. Спасибо за внимание |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10315 Location: Россия, Саратов
|
(Separately) Posted: Wed Jan 06, 2010 00:12 Post subject: |
|
|
hawk777
Каждую строку — в отдельный текстовый файл? _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
hawk777
Joined: 27 Dec 2008 Posts: 61
|
(Separately) Posted: Wed Jan 06, 2010 00:40 Post subject: |
|
|
Avada
да, названия файлов не принципиальны. Можно такое сделать? |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10315 Location: Россия, Саратов
|
(Separately) Posted: Wed Jan 06, 2010 01:06 Post subject: |
|
|
hawk777
Специалисты от праздничных хлопот отойдут — всю правду скажут. А я пока просто уточнил условия задачи, чтобы другим разбираться проще было. Ну и немножко заголовок темы заодно подправил. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
Вахмурка
Joined: 27 Dec 2004 Posts: 2585 Location: Большая деревня Москва
|
|
Back to top |
|
|
hawk777
Joined: 27 Dec 2008 Posts: 61
|
(Separately) Posted: Wed Jan 06, 2010 10:30 Post subject: |
|
|
Вахмурка
Скачал, лазил по ней, честно говоря непонятно как в ней файлы резать |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Wed Jan 06, 2010 11:22 Post subject: |
|
|
hawk777
Code: | @echo off &chcp 1251 >nul
setlocal enableextensions
if "%~1"=="" (
echo Use: split-into-lines.cmd "any file.txt"
exit /b
)
set "l=1"
for /f "usebackq delims=" %%l in ("%~1") do (
set "line=%%l"
setlocal enabledelayedexpansion
set "n=!l!"
if !l! LSS 1000 set "n=0!l!"
if !l! LSS 100 set "n=00!l!"
if !l! LSS 10 set "n=000!l!"
echo !line!> "%~nx1.!n!"
title !l! &endlocal &set /a l+=1
) |
Недостаток: пустые строки не увеличивают счётчик и файлы для них не создаются (собранный файл будет отличаться от исходного отсутствием пустых строк).
Last edited by Tol!k on Thu Jan 14, 2010 03:57; edited 2 times in total |
|
Back to top |
|
|
Вахмурка
Joined: 27 Dec 2004 Posts: 2585 Location: Большая деревня Москва
|
|
Back to top |
|
|
hawk777
Joined: 27 Dec 2008 Posts: 61
|
(Separately) Posted: Wed Jan 06, 2010 12:10 Post subject: |
|
|
Вахмурка
скачал powerpro отсюда, лазил по powerpro, если Вы про нее написали
Tol!k
Большое спасибо, но как пользоваться Вашим кодом? да и мне не нужно собирать файл обратно, главное разделить его чтобы каждая строка писалась в новый файл. |
|
Back to top |
|
|
Volniy
Joined: 15 Dec 2004 Posts: 585 Location: Местный
|
(Separately) Posted: Wed Jan 06, 2010 12:11 Post subject: |
|
|
Code: | Dim fso, InFile, Cnt, Stroka, ts
Set fso = CreateObject("Scripting.FileSystemObject")
InFile = WScript.Arguments(0)
Set ts=fso.OpenTextFile(InFile,1)
Cnt=0
Do Until ts.AtEndOfStream
Stroka=ts.ReadLine
Set MyFile= fso.CreateTextFile(InFile & "." & CStr(Cnt), True)
MyFile.WriteLine(stroka)
MyFile.Close
Cnt=Cnt+1
Loop
ts.Close
Set ts=Nothing
Set fso = Nothing
WScript.Quit
|
Сохранить в VBS-файл (например SplitByLine.vbs) и повесить на кнопку, в качестве ее параметров написать: ""%P%N"" (именно в двойных кавычках!). Нажимать кнопку, когда курсор на файле-истточнике.
NB Пустые строки считаются и файлы для них создаются. Если файл-источник в Unicode, то нужно будет изменить пару параметров. |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Wed Jan 06, 2010 12:29 Post subject: |
|
|
hawk777 wrote: | как пользоваться Вашим кодом? | Сохранить код в текстовый файл с расширением .cmd (например split-into-lines.cmd)
Запускать из командной строки split-into-lines "твой файл.txt"
Или кнопкой
Code: | TOTALCMD#BAR#DATA
%COMMANDER_PATH%\split-into-lines.cmd
%N
%COMMANDER_PATH%\WCMICONS.DLL,68
split-into-lines
-1 |
Last edited by Tol!k on Wed Jan 06, 2010 12:32; edited 2 times in total |
|
Back to top |
|
|
Вахмурка
Joined: 27 Dec 2004 Posts: 2585 Location: Большая деревня Москва
|
(Separately) Posted: Wed Jan 06, 2010 12:31 Post subject: |
|
|
hawk777
Прелесть в том, что разбираться в PowerPro для исполнения ее скриптов совершенно не обязательно: достаточно ее установить и, возможно, выполнить несколько простейших требований по настройке. Примерно то же касается и батников, и vbs-скриптов.
То, что установил PowerPro - молодец, не сноси. Авось потом и втянешься. _________________ Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон) |
|
Back to top |
|
|
hawk777
Joined: 27 Dec 2008 Posts: 61
|
(Separately) Posted: Wed Jan 06, 2010 12:35 Post subject: |
|
|
Всем большое человеческое спасибо за помощь и советы, скрипт отVolniy работает как надо |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2221 Location: Москва, Россия
|
(Separately) Posted: Fri Jan 08, 2010 23:25 Post subject: |
|
|
Volniy wrote: | ""%P%N"" (именно в двойных кавычках!) |
А нафига вообще кавычки? Для конструкции %P%N TotalCommander сам при необходимости добавит кавычки.
Tol!k wrote: | %COMMANDER_PATH%\split-into-lines.cmd
%N |
А вот здесь лучше добавить кавычки: "%N". _________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Sat Jan 09, 2010 00:55 Post subject: |
|
|
Tol!k wrote: | А вот здесь лучше добавить кавычки: "%N". |
Хуже. По той же причине: "TotalCommander сам при необходимости добавит кавычки."
Кавычки нужны только для "%P" и "%T" без связки с %N и %M |
|
Back to top |
|
|
|