Подсчёт к-ва символов в строках .txt файла и вывод отчёта
Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер
Подсчёт к-ва символов в строках .txt файла и вывод отчёта
Подскажите, можно ли сделать такое.
Есть текстовый файл, некоторые строки периодически обновляются...
Необходимо подсчитать количество символов тех строк, которые начинаются с "Info" ("Info_1","Info_2"...) и вывести какой-либо отчёт
Есть текстовый файл, некоторые строки периодически обновляются...
Необходимо подсчитать количество символов тех строк, которые начинаются с "Info" ("Info_1","Info_2"...) и вывести какой-либо отчёт
Я ещё бы добавил "или vbs?"Andrey_A писал(а):1. это bat или cmd?
У меня сработало на кнопкуAndrey_A писал(а):как сделать так, чтобы это срабатывало
Код: Выделить всё
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\CMD\Подсчёт количества символов в строках файла.CMD
%N Info
%COMMANDER_PATH%\Totalcmd.exe,3
Подсчёт количества символов в строках файла
-1
Tol!k всё работает, спасибо. Есть ещё несколько просьб
Сам файл выглядет таким образом
Info1=информация
Info1_dop=информация
Info1_dop2=информация
...
Info2=информация
Info2_dop=информация
Info2_dop2=информация
...
1. т.к. длинные строки, как сделать так чтобы сами строки (информация) в отчёте не отображались, а только их ПрефиксN - ...
Info1 - 500 знаков
Info2 - 655 знаков
Info3 - 126 знаков
.....
2. Есть много дополнительных строк Info1_dop=, Info1_dop2=, которые в отчёте не нужны, можно их не отображать (т.е.ПрефиксN_...) не отображать), а отображать только строки которые начинаются Info1=, Info2=, Info3= ....
Сам файл выглядет таким образом
Info1=информация
Info1_dop=информация
Info1_dop2=информация
...
Info2=информация
Info2_dop=информация
Info2_dop2=информация
...
1. т.к. длинные строки, как сделать так чтобы сами строки (информация) в отчёте не отображались, а только их ПрефиксN - ...
Info1 - 500 знаков
Info2 - 655 знаков
Info3 - 126 знаков
.....
2. Есть много дополнительных строк Info1_dop=, Info1_dop2=, которые в отчёте не нужны, можно их не отображать (т.е.ПрефиксN_...) не отображать), а отображать только строки которые начинаются Info1=, Info2=, Info3= ....
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::Andrey_A писал(а):Есть ещё несколько просьб
@echo off &chcp 1251 >nul &setlocal
rem Параметры: файл.txt "Префикс"
rem Подсчёт количества символов в строках, которые начинаются с "Префикс"
rem Автор: Tol!k
rem В префиксе можно использовать метасимволы:
rem . Подстановочный знак: любой символ
rem * Повтор: ноль или более предшествующих символов или классов символов
rem [класс] Класс символа: любой символ из множества
rem [x-y] Диапазон: любой символ из диапазона
echo Set Args = WScript.Arguments> "%temp%\StrLen.vbs"
echo WScript.StdOut.Write Len(Args(0))>> "%temp%\StrLen.vbs"
set "n=1"
for /f "delims=" %%i in ('findstr /b /r /c:"%~2" "%~1"') do call :cnt "%%~i"
move _len.txt _len.txt.bak 2>nul
set "n=1"
for /f "tokens=1 delims== " %%i in ('findstr /b /r /c:"%~2" "%~1"') do call :out "%%~i"
del /q "%temp%\StrLen.vbs" &if exist _len.txt start "" _len.txt
exit /b
:cnt
for /f "delims=" %%a in ('cscript.exe //b "%temp%\StrLen.vbs" "%~1"') do (
set /a n+=1 &title Found: %n% &set "a%n%=%%a"
)
goto :eof
:out
set /a n+=1 &call echo %~1 - %%a%n%%% знаков>> _len.txt
goto :eof
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
= ,похоже, является спецсимволом, поэтому выражение с ним приходится заключать в кавычки:
Код: Выделить всё
"Info.=" — любой символ
"Info[0-9]=" — одна цифра
"Info[0-9][0-9]=" — две цифры
"Info[0-9]*=" — любое кол-во цифр
Последний раз редактировалось Tol!k Вс апр 25, 2010 16:25, всего редактировалось 3 раза.