Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: Подсчёт к-ва раз встречающейся фразы в файле и вывод отчёта 
Author Message
Andrey_A



PostPosted: Sat Apr 24, 2010 22:27    Post subject: Reply with quote

Целый день потратил на поиск ответа в интернете. Накачал кучу сторонних тестовых утилит, но ни одна не удовлетворила. В конце наткнулся на статью о поиске строк с использованием батника. Пишу впервые, если что подправите, вот что получилось:
Code:
TOTALCMD#BAR#DATA
%ComSpec% /k echo Фраза "Button" встречается  в ...&
find "Button" /c /i %P%N &echo строках
shell32.dll,55
Подсчёт к-ва строк имеющих заданную фразу в файле под курсором


-1

Это решало задачу частично, и к тому же русскую фразу батник отказывался искать, как частный случай ещё одна кнопка:
Code:
TOTALCMD#BAR#DATA
%ComSpec% /k echo Пользовательские команды "em_" встречаются  в главном меню в &
find "em_and" /c "%%COMMANDER_PATH%%\Language\Wcmd_Rus.mnu" &echo строках
shell32.dll,55
Подсчёт к-ва строк имеющих заданную фразу в главном меню


-1

После 8 часов отыскивания информации на эту тему в нете, случайно наткнулся на скрипт, который искал к-во сочетаний «Кря» во введенном слове, а мне необходимо было в файле... я было забросил всё, как увидел тему "разрезания текстового файла"... спустя час, методом проб, ошибок и соединения этих двух скриптов у меня вылетело окно с подсчётом. Не судите строго, как это заработало я сам не понимаю, но кто хочет тот добьётся (если что подправите)
Code:
'=====================================================================
' Подсчёт к-ва раз встречающейся фразы в файле и вывод отчёта
'
' Параметры:
' {файл} {фраза}
'
' Пример вызова из TC:
' %P%N "текст"
'=====================================================================
Dim fso, InFile, Stroka, ts, i, s, fstr

Set fso = CreateObject("Scripting.FileSystemObject")
InFile = WScript.Arguments(0)
fstr = WScript.Arguments(1)
s = 0
Set ts=fso.OpenTextFile(InFile,1)

Do Until ts.AtEndOfStream
  Stroka=ts.ReadLine
   For i = 1 to (len(Stroka)-len(fstr)+1)
     If mid(Stroka,i,len(fstr))=fstr Then
       s=s+1
     End If
  Next
Loop

ts.Close
Set ts=Nothing
Set fso = Nothing
msgbox "Фраза" & chr (34) & fstr & chr (34) & " повторяется в тексте" & str & " " & Cstr(s) & " раз(а)"
WScript.Quit

Спасибо Вахмурка и Tol!k за направление!
View user's profile Send private message Send e-mail Visit poster's website ICQ Number


Powered by phpBB © 2001, 2005 phpBB Group