Sign in to follow this  
Followers 0
steve20020

Finding a string in a text file

7 posts in this topic

Hi, I am pretty new to AutoIT and also new to scripting/programming - so please take it easy :)

I am trying to determine if a string is present in a text file. The code is below.. it does not work and I am even more confused now then when I started.. 

can anyone please help 

Many thanks in advance, Steve 

#include <File.au3>
 
$filetosearch = FileOpen("new.txt", 0)
 
While 1
$line = FileReadLine($filetosearch)
If @error = -1 Then ExitLoop
If StringInStr("$line", "bad") Then
MsgBox(0, "Found", $line)
Else
MsgBox(0, "not found", $line)
FileClose($filetosearch)
EndIf
WEnd
FileClose($filetosearch)

Share this post


Link to post
Share on other sites



#2 ·  Posted (edited)

steve20020,

Welcome to the AutoIt forum. :)

You were pretty close: :thumbsup:

#include <File.au3>

$filetosearch = FileOpen("new.txt", 0)

While 1

    $line = FileReadLine($filetosearch)

    If @error = -1 Then ExitLoop

    If StringInStr($line, "bad") Then ; Remove the "" around the variable

        MsgBox(0, "Found", $line)
        ExitLoop ; Why look any further?

    Else

        MsgBox(0, "not found", $line)

    EndIf

WEnd

FileClose($filetosearch)
All clear? Please ask if not. :)

M23

Edited by Melba23
Tags!

Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind._______My UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Share this post


Link to post
Share on other sites

That's great thank you so much for your help :) 

Share this post


Link to post
Share on other sites

steve20020,

My pleasure as always. :)

M23


Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind._______My UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Share this post


Link to post
Share on other sites

Another way :)

#include <array.au3>
#include <file.au3>

global $aArray, $line

_FileReadToArray("new.txt", $aArray)
$line = _ArraySearch($aArray, "bad")
If @error Then
    MsgBox(0, "Not Found", "Not Found")
Else
    MsgBox(0, "Found", $line)
EndIf

Share this post


Link to post
Share on other sites

Another version, but this one doesn't display message if not found:

#include <file.au3>

global $aArray, $n

_FileReadToArray("new.txt", $aArray)
For $n = 1 to Ubound($aArray)-1
    If StringInStr($aArray[$n], "bad") Then
        MsgBox(0, "Found", $n)
        ExitLoop
    EndIf
Next

:bike:

Share this post


Link to post
Share on other sites

many thanks michaelslamet for showing me a different approach. I am new so it's really good seeing the various ways of doing things, it is helping my learning :) 

I like this and that it returns what line the first instance occurs :) 

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0