Jump to content

Recommended Posts

Posted

Hi, there is file (C:\test.txt), in him is written:

text
text
text
xxxx
text
text

ok, I want that AutoIt3 has found the text in file which I shall indicate, in this instance this "xxxx". As this do? I have done:

$file = FileOpen("C:\test.txt", 0)

If $file = -1 Then
    MsgBox(0, "Error!", "File not found!")
    Exit
EndIf
    *FileReadLine("xxxx")???*

*FileReadLine("xxxx")???* - that here to write? Thx

Posted

Hi,

depends on what you want to do if the word is found.

If you just need yes or no, then do a

If StringInStr(FileRead(FileOpen ....)), 'xxxx') <> 0 Then

MsgBox(64, 'Found', 'Found xxxx', 5)

Endif

Mega

Scripts & functions Organize Includes Let Scite organize the include files

Yahtzee The game "Yahtzee" (Kniffel, DiceLion)

LoginWrapper Secure scripts by adding a query (authentication)

_RunOnlyOnThis UDF Make sure that a script can only be executed on ... (Windows / HD / ...)

Internet-Café Server/Client Application Open CD, Start Browser, Lock remote client, etc.

MultipleFuncsWithOneHotkey Start different funcs by hitting one hotkey different times

Posted (edited)

Hi,

$FTIF = _FindTextInFile("C:\test.txt", "xxxx")
If @error Then
    MsgBox(0, "Error!", "Error Code: " & @error)
ElseIf Not $FTIF Then
    MsgBox(0, "No Match", "Text was not found in file")
Else
    MsgBox(0, "Match", "Text was found in file at line #: " & $FTIF)
EndIf

; #FUNCTION# =====================================================================================
; Name...........: _FindTextInFile
; Description ...: Find text in a text file. (only first instance of text)
; Syntax.........: _FindTextInFile($sFile, $sText[, $iCasesense = 0])
; Parameters ....: $sFile       - Filename of the text file to open.
;                  $sText       - Text to find.
;                  $iCasesense  - Flag to indicate if the operations should be case sensitive.
;                                 0 = Not case sensitive (Default)
;                                 1 = Case sensitive
;                                 2 = Not case sensitive, using a basic/faster comparison
; Return values .: Success      - Return the line number the text was found at (First line is 1).
;                  Failure      - Return 0 and set @error
;                                 @error 1 Text file doesn't exist.
;                                 @error 2 Problem opening the text file.
;                                 @error 3 Problem reading the file.
; ================================================================================================
Func _FindTextInFile($sFile, $sText, $iCasesense = 0)
    Local $FO, $FR, $aStr
    If Not FileExists($sFile) Then Return SetError(1, 0, 0)
    $FO = FileOpen($sFile, 0)
    If $FO = -1 Then Return SetError(2, 0, 0)
    $FR = FileRead($FO)
    If @error > 0 Then
        FileClose($FO)
        Return SetError(3, 0, 0)
    EndIf
    FileClose($FO)
    $aStr = StringSplit(StringStripCR($FR), @LF)
    For $i = 1 To $aStr[0]
        If StringInStr($aStr[$i], $sText, $iCasesense) Then Return $i
    Next
    Return 0
EndFunc

Cheers

Edited by smashly

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
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...