lordsocke Posted March 1, 2018 Share Posted March 1, 2018 Hey there, my problem is that the Substring im looking for in my Mainstring is changing a lot. So for example: $aRes = StringRegExp($text,$substring, 3) FileWrite("found.txt", _ArrayToString($aRes, @crlf)) this returns just -1 while this: $aRes = StringRegExp($text,"hello", 3) FileWrite("found.txt", _ArrayToString($aRes, @crlf)) returns my the full array. What am I doing wrong? Link to comment Share on other sites More sharing options...
jguinch Posted March 1, 2018 Share Posted March 1, 2018 _ArrayToString returns -1 because $aRes is not an array : your $substring pattern is incorrect, Spoiler Network configuration UDF, _DirGetSizeByExtension, _UninstallList Firefox ConfigurationArray multi-dimensions, Printer Management UDF Link to comment Share on other sites More sharing options...
lordsocke Posted March 1, 2018 Author Share Posted March 1, 2018 this: $substring = $a1 Global $res = StringRegExp($text, $substring, 3) If @error Then $nbOccurences = 0 Else $nbOccurences = UBound($res) Endif ConsoleWrite($nbOccurences & @LF) is also not working without Array problems Link to comment Share on other sites More sharing options...
mikell Posted March 1, 2018 Share Posted March 1, 2018 31 minutes ago, lordsocke said: $substring = $a1 Nice ! And what does the $a1 variable contain precisely ? user4157124 1 Link to comment Share on other sites More sharing options...
lordsocke Posted March 1, 2018 Author Share Posted March 1, 2018 A string witch has been read out by teserract.exe Link to comment Share on other sites More sharing options...
mikell Posted March 1, 2018 Share Posted March 1, 2018 Nice. Is it possible for us to have a look at this string ? Link to comment Share on other sites More sharing options...
lordsocke Posted March 1, 2018 Author Share Posted March 1, 2018 Just now, lordsocke said: A string witch has been read out by teserract.exe I think i found the problem, the string which came from teserract is smaller than the same word in the mainstring. Any solutions for that? For me they seem to be identical Link to comment Share on other sites More sharing options...
mikell Posted March 1, 2018 Share Posted March 1, 2018 Just now, lordsocke said: the string which came from teserract is smaller than the same word in the mainstring. Please explain. If the string (a word ?) exists in the main string then you should get a match Link to comment Share on other sites More sharing options...
lordsocke Posted March 1, 2018 Author Share Posted March 1, 2018 23 minutes ago, mikell said: Please explain. If the string (a word ?) exists in the main string then you should get a match exactly that is not happening Link to comment Share on other sites More sharing options...
mikell Posted March 1, 2018 Share Posted March 1, 2018 Hmm. You definitely don't want to show this wicked string. Too bad, it will be difficult to help So, guessing : does it contain newlines / special characters ? Link to comment Share on other sites More sharing options...
jguinch Posted March 1, 2018 Share Posted March 1, 2018 I think you just have to use : $aRes = StringRegExp($text, "\Q" & $substring & "\E", 3) but we cannot help you if you don't provide us an example of the content stored in $substring and $text Spoiler Network configuration UDF, _DirGetSizeByExtension, _UninstallList Firefox ConfigurationArray multi-dimensions, Printer Management UDF Link to comment Share on other sites More sharing options...
mikell Posted March 1, 2018 Share Posted March 1, 2018 @jguinch I'm afraid it's not so obvious. How do you conceptualise this : a word smaller than the same word ? Link to comment Share on other sites More sharing options...
lordsocke Posted March 3, 2018 Author Share Posted March 3, 2018 Here is the code im talking about: func tesseract() _ScreenCapture_Capture(@DesktopDir&"\Image1.jpg",1223, 452,1647, 509) Local $img_filename = "C:\Users\bla\Desktop\Image1.jpg" $ocr_filename = "C:\Users\bla\Desktop\Image1" $ocr_filename_and_ext ="C:\Users\bla\Desktop\Image1.txt" Local $iPID = Run(@ComSpec & " /C " & "tesseract.exe """ & $img_filename & """ """ & $ocr_filename & """", @ProgramFilesDir & "\Tesseract-OCR", @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD) ProcessWaitClose($iPID) FileOpen($ocr_filename_and_ext) $a1= FileRead($ocr_filename_and_ext) FileClose($ocr_filename_and_ext) EndFunc tesseract() FileWriteline("bla.txt",$a1) FileClose("bla.txt") FileOpen("bla.txt") $substring = FileRead("bla.txt") FileClose("bla.txt") $compare = StringCompare($substring,"string") ConsoleWrite($compare) Link to comment Share on other sites More sharing options...
lordsocke Posted March 3, 2018 Author Share Posted March 3, 2018 this results for me in -1 Just now, lordsocke said: Here is the code im talking about: func tesseract() _ScreenCapture_Capture(@DesktopDir&"\Image1.jpg",1223, 452,1647, 509) Local $img_filename = "C:\Users\bla\Desktop\Image1.jpg" $ocr_filename = "C:\Users\bla\Desktop\Image1" $ocr_filename_and_ext ="C:\Users\bla\Desktop\Image1.txt" Local $iPID = Run(@ComSpec & " /C " & "tesseract.exe """ & $img_filename & """ """ & $ocr_filename & """", @ProgramFilesDir & "\Tesseract-OCR", @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD) ProcessWaitClose($iPID) FileOpen($ocr_filename_and_ext) $a1= FileRead($ocr_filename_and_ext) FileClose($ocr_filename_and_ext) EndFunc tesseract() FileWriteline("bla.txt",$a1) FileClose("bla.txt") FileOpen("bla.txt") $substring = FileRead("bla.txt") FileClose("bla.txt") $compare = StringCompare($substring,"string") ConsoleWrite($compare) Link to comment Share on other sites More sharing options...
BrewManNH Posted March 3, 2018 Share Posted March 3, 2018 Isn't this the same script you are already asking for help with? If you can't get it to work, how do you expect it to compare 2 strings? You can't even get the text of the first string according to the other thread you have going, so I can't see how it would ever work in this instance If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag GudeHow to ask questions the smart way! I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from. Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays. - ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script. - Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label. - _FileGetProperty - Retrieve the properties of a file - SciTE Toolbar - A toolbar demo for use with the SciTE editor - GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI. - Latin Square password generator Link to comment Share on other sites More sharing options...
lordsocke Posted March 3, 2018 Author Share Posted March 3, 2018 Okay, I found the problem. Tesseract made 2 invisible letters on the end of the String. This works fine. Don´t know why. $substring = StringTrimRight ($substring, 2) Link to comment Share on other sites More sharing options...
BrewManNH Posted March 3, 2018 Share Posted March 3, 2018 BTW, have you tried the Tesseract UDF? If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag GudeHow to ask questions the smart way! I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from. Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays. - ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script. - Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label. - _FileGetProperty - Retrieve the properties of a file - SciTE Toolbar - A toolbar demo for use with the SciTE editor - GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI. - Latin Square password generator Link to comment Share on other sites More sharing options...
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