Sign in to follow this  
Followers 0
mrflibblehat

_arraydisplay works but directly printing array element errors

4 posts in this topic

Hi All,

I have not used autoit in quite a while so please forgive me, I've most likely make a simple error.

I have created a regexp to grab email addresses from a file. When I try and print it with _Arraydisplay it works, but when I try and print it using $arr[0] it errors on error 1 (invalid)

Anyone able to explain what i'm doing incorrectly

#include <File.au3>
#include <MsgBoxConstants.au3>
#include <array.au3>

Local $file = FileOpen("sql.txt")
Local $lines = _FileCountLines("sql.txt")

for $i = 1 to $lines

   $fline = FileReadLine($file, $i)
   $str = StringRegExp($fline, "'(.+\@.*?)'", 3)
   ConsoleWrite($str[0] & @CRLF)

Next

Thank you for any help provided.


[font="'courier new', courier, monospace;"]Pastebin UDF | Prowl UDF[/font]

Share this post


Link to post
Share on other sites



I would check if StringRegExp really returns an array.


My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2017-04-18 - Version 1.4.8.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2017-02-27 - Version 1.3.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2015-04-01 - Version 0.4.0.0) - Download - General Help & Support - Example Scripts
Excel - Example Scripts - Wiki
Word - Wiki
PowerPoint (2015-06-06 - Version 0.0.5.0) - Download - General Help & Support

Tutorials:
ADO - Wiki

 

Share this post


Link to post
Share on other sites

#3 ·  Posted (edited)

Yeah, probably not all lines contains an email. Try this:

#include <File.au3> 
#include <MsgBoxConstants.au3> 
#include <array.au3> 

Local $file = FileOpen("sql.txt") 
Local $lines = _FileCountLines("sql.txt") 
for $i = 1 to $lines    
    $fline = FileReadLine($file, $i)    
    $str = StringRegExp($fline, "'(.+\@.*?)'", 3)   
    If @error then ContinueLoop
    ConsoleWrite($str[0] & @CRLF) 
Next

Edit: Or you could do the RegExp on the entire file?

#include <File.au3> 
#include <MsgBoxConstants.au3> 
#include <array.au3> 

Local $file = FileRead("sql.txt") 
$str = StringRegExp(file, "'(.+\@.*?)'", 3)   
If Not @error then 
    For $idx = 0 To Ubound($str)-1          
        ConsoleWrite($str[$idx] & @CRLF) 
    Next
EndIf
Edited by Geir1983

Share this post


Link to post
Share on other sites

Why are people escaping @? The meta characters that need to be escaped only are ... ].|*?+(){}^$[ if you want then to match literally or use Q...E.

See... '?do=embed' frameborder='0' data-embedContent>>


_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 04/09/2015

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