myspacee Posted June 1, 2009 Posted June 1, 2009 hello to all, for work i must search how many time a word is call in a large amout of txt files. this is part of my list: pavia milano roma firenze torino venezia pistoia catania sassari Search suggest on scripting this : On given directory: - program take first value [pavia] - open first file and search for [pavia] - if found write log [pavia +1]. if not found skip to next file. - when files are over, restart whit second list entry [milano] - and go on until finish list. if [word] is contained more than 1 times, i must count only 1 time. ex: Pavia is a small city. But Pavia was important in italy history. find 2 times [Pavia] but i must count it as only 1 find. Need some idea how to store info, and functions i must use to do this kind of research. Thank you all for your time, m.
Pain Posted June 1, 2009 Posted June 1, 2009 StringReplace - "...the number of replacements performed is stored in @extended." Replacing your current word with itself will give you how many times the word was used.
myspacee Posted June 1, 2009 Author Posted June 1, 2009 think something right this: create folder '\01_IN_txt\' create file 'nomicom.txt' in script dir with wanted word expandcollapse popup#include <file.au3> #include <array.au3> #include <GuiConstantsEx.au3> #include <WindowsConstants.au3> $file_log = FileOpen(@ScriptDir & "\LOG.txt", 10) ;~ $sourceFolder = $split_source_Path[1] & $split_source_Path[2] $sourceFolder = @ScriptDir & "\01_IN_txt\*.txt" ; check filenames of specified path $search = FileFindFirstFile($sourceFolder) ; Check if the search was successful If $search = -1 Then ConsoleWrite("No files matched the search pattern." & @CRLF) Exit EndIf ;Gather files into an array $fileList = _FileListToArray(@ScriptDir & "\01_IN_txt\", "*.txt", 1) ;Loop through array For $X = 1 to $fileList[0] ;read file $foo = FileOpen (@ScriptDir & "\01_IN_txt\" & $fileList[$X], 0) $bar = FileRead ($foo) ;initialize line counter $line_number = 0 while 1 ;skip to next line $line_number = $line_number + 1 $line = FileReadLine(@ScriptDir & "\nomicom.txt", $line_number) If @error = -1 Then ExitLoop;if error file is over ;use fake stringreplace trick;) $text = StringReplace($bar, $line, $line) $numreplacements = @extended ;if find something log if $numreplacements <> 0 Then FileWriteLine($file_log, $fileList[$X] & "---> [Search for : " & $line & " ] [Find : " & $numreplacements & "]" & @CRLF) EndIf WEnd ;close file and skip to Next FileClose ($foo) Next FileClose ($file_log) script read all .txt file and search for single list entry. m.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now