david1337 Posted November 4, 2016 Posted November 4, 2016 Hi guys I hope you can help me out with this one. I have a text file "test.txt" which could contain something like this: __________________________________________________________ fiw eqw sdg xcv __________________________________________________________ Each string has it's own line. I use this script to find a string in the text file. In this example, the string I am looking for is "iw". The string "fiw" makes it believe that "iw" is found in the file. How can I avoid this? I want it only to return EXACT results. $string = "iw" $File = FileOpen("test.txt", 0) $ReadFile = FileRead($File) FileClose($File) If StringRegExp(StringLower($ReadFile), StringLower($string)) Then MsgBox(0,"",$string & " is found in the file") Exit Else MsgBox(0,"",$string & " is not found in the file") Exit EndIf
Moderators Melba23 Posted November 4, 2016 Moderators Posted November 4, 2016 david1337, Use "beginning and end of string" anchors around the required string like this: $string = "iw" $ReadFile = "fiw" & @CRLF & "eqw" & @CRLF & "sdg" & @CRLF & "xcv" If StringRegExp(StringLower($ReadFile), "^" & StringLower($string) & "$") Then MsgBox(0, "", $string & " is found in the file") Else MsgBox(0, "", $string & " is not found in the file") EndIf M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area
mikell Posted November 4, 2016 Posted November 4, 2016 Melba, Please don't forget the (?m) option david1337 1
david1337 Posted November 4, 2016 Author Posted November 4, 2016 Hi Melba Thanks for your answer! It seems that with your code, all strings gets the message "is not found in the file", even though I use "fiw" which is there?
Moderators Melba23 Posted November 4, 2016 Moderators Posted November 4, 2016 david1337, mikell had the answer - you need to be in multiline mode: $ReadFile = "fiw" & @CRLF & "eqw" & @CRLF & "sdg" & @CRLF & "xcv" $string = "iw" If StringRegExp(StringLower($ReadFile), "(?m)^" & StringLower($string) & "$") Then MsgBox(0, "", $string & " is found in the file") Else MsgBox(0, "", $string & " is not found in the file") EndIf $string = "fiw" If StringRegExp(StringLower($ReadFile), "(?m)^" & StringLower($string) & "$") Then MsgBox(0, "", $string & " is found in the file") Else MsgBox(0, "", $string & " is not found in the file") EndIf Sorry about that - I had tested for the "wrong" case, but not for "right" one. M23 david1337 1 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area
david1337 Posted November 4, 2016 Author Posted November 4, 2016 (edited) That worked perfectly. Thanks for taking your time Melba and mikell Edited November 4, 2016 by david1337
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