PDA

Показать полную графическую версию : [решено] Вывести список слов из текстового файла


Cypp0raT
20-11-2012, 21:21
Требуется написать bat-ник, выводящий список слов из текстового файла с числом их вхождений.
Сам только начинаю пытаться разбираться в этом, но пока все печально. Далеко в решении не ушел.

set mfile=C:\CMDTest\d.txt
set str=""

for /f "tokens=*" %%i in ('type %mfile%') do (
set str=%%i

for /f "tokens=1*" %%j in ("%%i") do (
find /i /c "%%j" "%mfile%"


)
)

Iska
20-11-2012, 22:06
Cypp0raT, задача для пакетных файлов, прямо скажем, не тривиальная. Зачем сие нужно?

Cypp0raT
21-11-2012, 14:15
Iska, скажем так, чтобы облегчить себе дальнейшую участь.

Iska
21-11-2012, 17:07
Cypp0raT, облегчать участь проще и надёжнее в рамках WSH или PoSH. Например:
Option Explicit

Dim objDictionary
Dim elem

Set objDictionary = WScript.CreateObject("Scripting.Dictionary")

With WScript.CreateObject("Scripting.FileSystemObject").OpenTextFile("E:\Песочница\0206\0001.txt")
Do Until .AtEndOfStream
For Each elem In Split(.ReadLine())
If Not objDictionary.Exists(elem) Then
objDictionary.Add elem, 1
Else
objDictionary.Item(elem) = objDictionary.Item(elem) + 1
End If
Next
Loop

.Close
End With

For Each elem In objDictionary.Keys
WScript.Echo elem, objDictionary.Item(elem)
Next

objDictionary.RemoveAll

Set objDictionary = Nothing

WScript.Quit 0

yurfed
21-11-2012, 17:16
Cypp0raT, может здесь что почерпнёте
[решено] Разработать программу которая будет считать кол-во символов,строк,слов в .txt (http://forum.oszone.net/thread-175606.html)

Cypp0raT
21-11-2012, 17:17
Iska, само собой через "прямой" язык это сделать легче. Но мне требуется именно на cmd...
Ладно, проблему решил сам. Правда через заднюю мысль, но сойдет.

Тогда такой подвопрос, как мне вывести этот список без повтора одинаковых слов?
dog 8
head 4
dog 8
man 12
woman 4
head 4

Т.е. вывод должен получиться примерно таким:
dog 8
head 4
man 12
woman 4

Iska
21-11-2012, 18:02
Подсказка: если несколько раз написать set Var=Value, переменная останется всё равно одна.

Вам нужно из полученного добиться в итоге примерно такого варианта исполнения:
set sWordsdog=8
set sWordshead=4
set sWordsdog=8
set sWordsman=12
set sWordswoman=4
set sWordshead=4

set sWords
Думайте.




© OSzone.net 2001-2012