Sign in to follow this  
Followers 0
Centrally

How to identify part of line in txt and than take entire line

6 posts in this topic

I've bumped on next problem:

I have txt file with bunch of mails, and I want to write script that search for specific one and put it in other txt file.

Example:

Email1@gmail.com

Email2@gmail.com

Email3@yahoo.com

Email4@hotmail.com

Now what I want is to search if domain is @gmail and output entire mail in new file.

I have tried StringInString but I have no idea what to do with number of place where is found line starting.

I'm pretty sure this should be done with StringCompare but I seams not to be able to find anyone with similar task who have posted online about this. I would appreciate any help or idea you could have and could share with me. Thanks

Share this post


Link to post
Share on other sites



#2 ·  Posted (edited)

Something like that:

#include <File.au3>
$file_database = @ScriptDir & "\email_database.txt"
$file_found = @ScriptDir & "\found_email_database.txt"

Global $open_file_database = FileOpen($file_database, 1)
Global $open_file_found = FileOpen($file_found, 1)


For $i = 0 To _FileCountLines($file_database)
$line = FileReadLine($open_file_database, $i)

If StringInStr($line, "@gmail") Then
       FileWriteLine($open_file_found, $line)
EndIf
Next

!!WARNING!! I have not tested this code, but here there are all the function that you need to do what you want.

Hi!

Edited by Nessie

My UDF: NetInfo UDF Play with your network, check your download/upload speed and much more! YTAPI Easy to use YouTube API, now you can easy retrive all needed info from a video. NavInfo Check if a specific browser is installed and retrive other usefull information. YWeather Easy to use Yahoo Weather API, now you can easily retrive details about the weather in a specific region. No-IP UDF Easily update your no-ip hostname(s).

My Script: Wallpaper Changer Change you wallpaper dinamically, you can also download your wallpaper from your website and share it with all!   My Snippet: _ImageSaveToBMPConvert an image to bmp format. _SciteGOTO Open a file in SciTE at specific fileline. _FileToHex Show the hex code of a specified file

Share this post


Link to post
Share on other sites

Something like that:

#include <File.au3>
$file_database = @ScriptDir & "\email_database.txt"
$file_found = @ScriptDir & "\found_email_database.txt"

Global $open_file_database = FileOpen($file_database, 1)
Global $open_file_found = FileOpen($file_found, 1)


For $i = 0 To _FileCountLines($file_database)
$line = FileReadLine($open_file_database, $i)

If StringInStr($line, "@gmail") Then
FileWriteLine($open_file_found, $line)
EndIf
Next

!!WARNING!! I have not tested this code, but here there are all the function that you need to do what you want.

Hi!

I've tried it and it simply does nothing. Something is not right.

Share this post


Link to post
Share on other sites

#4 ·  Posted (edited)

#include <File.au3>
$file_database = @ScriptDir & "\email_database.txt"

$file_found = @ScriptDir & "\found_email_database.txt"

Global $open_file_found = FileOpen($file_found, 1)
Local $found_email_number = 0

For $i = 0 To _FileCountLines($file_database)
$line = FileReadLine($file_database, $i)
If StringInStr($line, "@gmail") Then
$found_email_number += 1
FileWriteLine($open_file_found, $line)
EndIf
Next

FileClose($open_file_found)

If $found_email_number > 0 Then
MsgBox(0, "Done", "Found " & $found_email_number & " email.")
Else
MsgBox(0, "Error", "No email found.")
EndIf

Tested and working well.

Hi!

Edited by Nessie
1 person likes this

My UDF: NetInfo UDF Play with your network, check your download/upload speed and much more! YTAPI Easy to use YouTube API, now you can easy retrive all needed info from a video. NavInfo Check if a specific browser is installed and retrive other usefull information. YWeather Easy to use Yahoo Weather API, now you can easily retrive details about the weather in a specific region. No-IP UDF Easily update your no-ip hostname(s).

My Script: Wallpaper Changer Change you wallpaper dinamically, you can also download your wallpaper from your website and share it with all!   My Snippet: _ImageSaveToBMPConvert an image to bmp format. _SciteGOTO Open a file in SciTE at specific fileline. _FileToHex Show the hex code of a specified file

Share this post


Link to post
Share on other sites

....

Yeah it's working fine now, really thank you for your fast help.

Share this post


Link to post
Share on other sites

Glad to help you, take a look to my previous message, as i modified a little bit the code :)

Hi!


My UDF: NetInfo UDF Play with your network, check your download/upload speed and much more! YTAPI Easy to use YouTube API, now you can easy retrive all needed info from a video. NavInfo Check if a specific browser is installed and retrive other usefull information. YWeather Easy to use Yahoo Weather API, now you can easily retrive details about the weather in a specific region. No-IP UDF Easily update your no-ip hostname(s).

My Script: Wallpaper Changer Change you wallpaper dinamically, you can also download your wallpaper from your website and share it with all!   My Snippet: _ImageSaveToBMPConvert an image to bmp format. _SciteGOTO Open a file in SciTE at specific fileline. _FileToHex Show the hex code of a specified file

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

  • Similar Content

    • LoneWolf_2106
      By LoneWolf_2106
      Hi everybody,
      i have a log file with several entries like the following one:
      INFO [26.04.2017 11:37:48] [main] XML-Data: <online-activation> <general> <userid>XYZ</userid> <mac-address/> <OU>VG-DE</OU> <ROLE>KDT</ROLE> <FOA>PRO;FC;DOM;MDD</FOA> <BRD>XYZ;IMP</BRD> </general> <applications> <app expiration-date="2017-10-01" name="BB-INFO"/> <app expiration-date="2017-10-01" name="MMSKD"/> <app expiration-date="2017-10-01" name="FM-TOOL"/> <app expiration-date="2017-04-05" name="WEB-BTD"/> <app expiration-date="2017-10-01" name="OFFLINE-BTD"/> <app expiration-date="2017-10-01" name="MDU-UPD"/> <app expiration-date="2017-10-01" name="MDU"/> <app expiration-date="2017-04-05" name="WEB-WDA"/> <app expiration-date="2017-04-05" name="WEB-ETD"/> <app expiration-date="2017-10-01" name="OFFLINE-WDA"/> <app expiration-date="2017-10-01" name="OFFLINE-ETD"/> </applications> </online-activation>  
      I need to collect all the XML-Data, my search doesn't work:
       
      Func FileSearch() $j=0 For $i = 0 To UBound($content_array) - 1 $search_result=StringInStr($content_array[$i],$search) If $search_result<>0 Then ReDim $searchResultArray[UBound($searchResultArray) + 1] $searchResultArray [$j] = $content_array[$i] _ArrayDisplay($searchResultArray) $j+=1 EndIf Next EndFunc If i search for "online-activation", it retrieves only the first and the last tag, but not what is within.
      In addition, when i use FileReadToArray, all the entries between <online-activation> and </online-activation>

    • MrSparty1995
      By MrSparty1995
      I have a good handle on how to read a file line by line, and search for a given string.
      Basically using, FileOpen, FileReadLine, and StringInStr.
      I have been trying to figure out why my search keeps coming back with no match.
      For example, if my string line was "Where is Waldy", and I was searching for Waldy that comes back fine.
      But in my file, Let's say it is
      Where is "Waldy"
      So i read that line in and do a search for Waldy, but i comes back with no match since there is quotes around it.
      Is there a way to resolve this?
      Here is my actual example
      The line comes back like this
          <JposEntry logicalName="LineDisp_iSC480">
      I'm searching for LineDisp_iSC480, but its coming back with no match due to the quotes.
      Thanks in advance, James
    • AliOzturk
      By AliOzturk
      Hello, I want to be able to search for multiple strings and if any of the strings are found I want it returned which one it is. I've been able to search for multiple strings using the OR command, but I'm not sure how I am supposed to make it return which of my strings is found. I've given an example below
      If StringInStr($html, Batman) OR StringInStr($html, Superman) Then MsgBox(0, "Success", "The string found was: Superman") EndIf So it will search for the two strings and whichever it founds it will return me with. How can I make that work?
    • rootx
      By rootx
      #include <Array.au3> #include <File.au3> #include <MsgBoxConstants.au3> Local $path="C:\Users\rootx\Desktop\Nuova cartella",$mask = "*.jpg;*.png;*.ico",$Pos $FileArr = _FileListToArrayRec($path,$mask,1,1,1,2) For $x = 1 to UBound($FileArr)-1 If $Pos = StringInStr($FileArr[$x],"-") Then ConsoleWrite("------"&$FileArr[$x]&@CRLF) Else ConsoleWrite($FileArr[$x]&@CRLF) FileDelete($FileArr[$x]) EndIf ConsoleWrite($x&@CRLF) Next ConsoleWrite($x-1&@CRLF) I would write a loop that individuals and delete files that contain this feature....
      File name-150x100.jpg, or other -SizexSize
      But in this case how can I filter properly?
      File name 150x100-150x100.jpg
      File name -100-150x100.jpg
       
    • Italiano
      By Italiano
      Hello,
      As always, sorry for my bad english.
      here is the code i have
      #include <File.au3> #include <String.au3> $file1 = "d:\doppioniautoit\international.txt" FileOpen($file1, 0) $file2 = "d:\doppioniautoit\standard.txt" FileOpen($file2, 0) For $i = 1 to _FileCountLines($file1) $line = FileReadLine($file1, $i) $aExtract = _StringBetween($line, "(", ")") ;MsgBox(0, $line, $aExtract[0]) $itime = TimerInit() For $x = 1 to _FileCountLines($file2) $line2 = FileReadLine($file2, $x) Local $iPosition = StringInStr($line2, $aExtract[0], 1) ;Local $iPosition = StringRegExp($line2,$aExtract[0], 0) if $iPosition <> 0 then ;MsgBox(0, "Trovato", $aExtract & " " & $line2) endif ConsoleWrite($line2 & @CRLF) Next ConsoleWrite(@TAB&'Str='&TimerDiff($itime)&' ms'&@lf) MsgBox(0, "TIME", @TAB&'Str='&TimerDiff($itime)&' ms'&@lf) Next FileClose($file1) So, what do i want to do? I try to explain with my poor english   Basically, i have 2 text files (see attachments below). They both contains movie titles with Director and Year  in this form
      Movie Title (Director, Year)
      "Standard.txt" contains, mostly, italian titles. "International.txt", as you can image, contains the internationals one. With the script i would like to search for the Director, Year of "international.txt" in the "standard.txt" file.
      For example... first row of "international.txt" is "¡Atraco! (Cortés, 2012)". The script takes just the "Cortés, 2012" and it searches for it in the standard. txt file.
      The simple code i wrote works...  I tried using StringInStr and using StringRegExp.. they both need about 2 minutes and 30 seconds (stringinstr is little faster) to process one row.
      I was wondering... is there any other method to make it faster using autoit? Any help would be much appreciated, thx!
       
       
      standard.txt
      international.txt