Тема: VBS:Подсчет количества совпадающих строк в файле
Всем привет, есть файл вида, например:
таня
дима
света
таня
толя
оля
света
иван
дима
таня
итд
надо подсчитать сколько раз повторяется каждая подстрока, и записать результат в др.файл
Т.е надо прочитать строку, сравнить ее с каждой из остальных, удалить совпадающие, подсчитать кол-во совпадающих строк и записать результат в другой файл. И так со всеми строками
Просто найти известную подстроку, подсчитать, удалить и записать результат в др.файл я могу
word = "таня" 'искомое слово
papka = "c:\0\" 'папка поиска
output= papka&"отчет\" 'папка output
output_txt = output&"отчет.txt" 'файл отчета
i=0 'счетчик файлов
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objRegExp = CreateObject("VBScript.RegExp")
If not objFSO.FolderExists(output) Then objFSO.CreateFolder output 'создаем output
objRegExp.IgnoreCase = True
Set file2 = objFSO.OpenTextFile(output_txt, 2, True)
RecursiveFolderScan papka
file2.close
Msgbox "ВСЕ! Обработано "& i &" файлов"
Sub RecursiveFolderScan(FolderPath)
'Получаем объектную модель текущего каталога
Set Folder = objFSO.GetFolder(FolderPath)
'Перебираем все файлы в текущем каталоге
For Each File in Folder.Files
'+++++++++++++++++++++++++++++++++++++++++
Set file1 = objFSO.OpenTextFile(File, 1, False) 'читаем файл
boolFound = False
z=0 'счетчик подстрок
Do Until file1.AtEndOfStream
sw = file1.ReadLine() 'по-строчно
If InStr(1, sw, word) <> 0 Then z=z+1
Loop
file2.WriteLine(file.Name) 'пишем в отчет имя файла
file2.WriteLine(sw&" повторяется "&z&" раз") 'пишем в отчет всю строку
file1.close 'закрываем файл
Set file1 = objFSO.OpenTextFile(File, 1, False) 'снова читаем тот же файл
strText = file1.ReadAll 'читаем все содержимое в переменную
file1.close 'и опять закрываем
'меняем все вхождения найденной строки на пробел - а надо наверное искомого слова - word
strNewText = Replace(strText, sw, " ")
'снова открываем тот же файл - на этот раз для записи - таким образом удаляя все содержимое файла
Set file1 = objFSO.OpenTextFile(File, 2, False)
file1.WriteLine strNewText 'пишем новое содержимое
file1.close 'и закрываем в третий раз
i=i+1 'счетчик файлов
'++++++++++++++++++++++++++++++++++++++
Next
End Sub
А вот прочитать строку и сравнить ее с каждой из остальных и потом проделать это со всеми оставшимися строками пока не закончаться все строки - как это сделать мне не понятно.