Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Вывести список слов из текстового файла (http://forum.oszone.net/showthread.php?t=247335)

Cypp0raT 20-11-2012 21:21 2029195

Вывести список слов из текстового файла
 
Требуется написать 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 2029229

Cypp0raT, задача для пакетных файлов, прямо скажем, не тривиальная. Зачем сие нужно?

Cypp0raT 21-11-2012 14:15 2029622

Iska, скажем так, чтобы облегчить себе дальнейшую участь.

Iska 21-11-2012 17:07 2029737

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 2029741

Cypp0raT, может здесь что почерпнёте
[решено] Разработать программу которая будет считать кол-во символов,строк,слов в .txt

Cypp0raT 21-11-2012 17:17 2029742

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 2029784

Подсказка: если несколько раз написать set Var=Value, переменная останется всё равно одна.

Вам нужно из полученного добиться в итоге примерно такого варианта исполнения:
Код:

set sWordsdog=8
set sWordshead=4
set sWordsdog=8
set sWordsman=12
set sWordswoman=4
set sWordshead=4

set sWords

Думайте.


Время: 13:02.

Время: 13:02.
© OSzone.net 2001-