Jump to content
Sign in to follow this  
reb

String Extraction Problem

Recommended Posts

I want to get the date such as April 17, 2012

I can not get Apr=il 17, 2012 as yet

What am I doing wrong?

REB

global $Info[4]
$Info[0] = '"dana, Arial, Helvetica, sans-serif" ><b>Your account balance(s) as of Apr=il 17, 2012</b></font><br /><br/></td>'
$Info[1] = 'dana, Arial, Helvetica, sans-serif" ><b>Your account balance(s) as of Jun=e 03, 2013</b></font><br /><br/></td>'
$Info[2] = 'dana, Arial, Helvetica, sans-serif" ><b>Your account balance(s) as of Aug=ust 02, 2012</b></font><br /><br/></td>'
$Info[3] = 'dana, Arial, Helvetica, sans-serif" ><b>Your account balance(s) as of Jan=uary 20, 2012</b></font><br /><br/></td>'
;~ $Info[4] = '
for $i = 0 to 3
$date = $Info[$i]



$Start = StringInStr($Date, "of ")+1
;~ MsgBox(0,$i & "$start",$Start)
$Stringlength = StringLen($date)
$Intermediate = StringRight($date,$Stringlength - $Start)
;~ MsgBox(0,$i & " $Intermediate",$Intermediate)
;~ $End = StringInStr($Intermediate,"<",0,1,1,20)
$end = StringInStr ($Intermediate,",",0,1)
$Stringlength2 = StringLen($Intermediate)
;~ MsgBox(0,$i & " Final",StringLeft($Intermediate,$Stringlength2 - $end ))
ConsoleWrite(StringLeft($Intermediate,$Stringlength2 - $end ) & "   " & $i & @CRLF)
Next

MEASURE TWICE - CUT ONCE

Share this post


Link to post
Share on other sites

They come from Windows live mail   "Filename.eml"

I hard coded some I had extracted from my E-Mails for my example

Thank for the reply

REB


MEASURE TWICE - CUT ONCE

Share this post


Link to post
Share on other sites

;http://www.autoitscript.com/forum/topic/153496-string-extraction-problem/
;Post #1
;D:\DOKUME~1\ADMINI~1\LOKALE~1\Temp\SLICER\Avatar\default_large.png
;by reb

;Script grabbed by SLICER by Edano here: http://www.autoitscript.com/forum/topic/152402-slicer-autoit-forum-script-grabber/?p=1093575

global $Info[4]
$Info[0] = '"dana, Arial, Helvetica, sans-serif" ><b>Your account balance(s) as of Apr=il 17, 2012</b></font><br /><br/></td>'
$Info[1] = 'dana, Arial, Helvetica, sans-serif" ><b>Your account balance(s) as of Jun=e 03, 2013</b></font><br /><br/></td>'
$Info[2] = 'dana, Arial, Helvetica, sans-serif" ><b>Your account balance(s) as of Aug=ust 02, 2012</b></font><br /><br/></td>'
$Info[3] = 'dana, Arial, Helvetica, sans-serif" ><b>Your account balance(s) as of Jan=uary 20, 2012</b></font><br /><br/></td>'
;~ $Info[4] = '
for $i = 0 to 3
    $date = $Info[$i]

    $t=StringSplit($date,"of ",1)
    If $t[0]>1 Then
        $ret=StringSplit($t[2],"<")
        ConsoleWrite($ret[1] & "   " & $i & @CRLF)
    EndIf
Next


[color=rgb(255,0,0);][font="'comic sans ms', cursive;"]FukuLeaks[/color][/font]

Share this post


Link to post
Share on other sites

They come from Windows live mail   "Filename.eml"

I hard coded some I had extracted from my E-Mails for my example

Thank for the reply

REB

Then I think the StringReplace(...) function will suit your needs.

Share this post


Link to post
Share on other sites

global $Info[4]
$Info[0] = '"dana, Arial, Helvetica, sans-serif" ><b>Your account balance(s) as of Apr=il 17, 2012</b></font><br /><br/></td>'
$Info[1] = 'dana, Arial, Helvetica, sans-serif" ><b>Your account balance(s) as of Jun=e 03, 2013</b></font><br /><br/></td>'
$Info[2] = 'dana, Arial, Helvetica, sans-serif" ><b>Your account balance(s) as of Aug=ust 02, 2012</b></font><br /><br/></td>'
$Info[3] = 'dana, Arial, Helvetica, sans-serif" ><b>Your account balance(s) as of Jan=uary 20, 2012</b></font><br /><br/></td>'

For $i = 1 To 4
    StringReplace($Info[$i], "=", "")
Next

As suggested above is cleaner..

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  

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By cruisepandey
      Hi, 
      I have a string like this : 
      Global $Msga = "urrent directory is /send.  (Submission of file with log number 29381077284 is confirmed)";
      I want to extract the number 29381077284  from the string. I did StringSplit to split based on "(" and then use space to reach there, But it's not a good choice. 
      Can anyone help me with regular expression to find the number from String using AutoIT. TIA
    • By DannyJ
      I have this example string:
       
      2020-06-08 09:23:33 : abcdefghifjklm How to trim just the right part? Or how to trim this text right to left?
      I want to trim this string right to left until ' : '.
      In ohter words: I need the 'abcdefghifklm' text.
      I have tried StringTrimRight, but that requires 
      The number of characters to trim. Unfortunately StringSplit trims the left part of the strings.
       
       
    • By careca
      This is my take on string triggers, triggers on specific strings.
      Able to simple text pasting,
      opening links (as long as there's a www. http:\\ or https:\\ at the beggining)
      and is able to open applications, if there is a parameter in the parameter field, it uses it.
      Shows your external, lan, and gateway ip's.
      Able to change system volume by a set percentage, reading from the inputbox the number the user sets, if 0 or empty uses system default.
      I made this because the existing string trigger applications didn't do it for me.
      I did this for me, but if someone finds it useful, all the better.
    • By Colduction
      Hi guys!, i have a problem to convert Python code to AutoIt code, in fact i had not coded with Python yet!, this code is about permutation a string's case, i will be happy with your comments :)❤;

      Python code:
       
      # Python code to print all permutations # with respect to cases # Function to generate permutations def permute(inp): n = len(inp) # Number of permutations is 2^n mx = 1 << n # Converting string to lower case inp = inp.lower() # Using all subsequences and permuting them for i in range(mx): # If j-th bit is set, we convert it to upper case combination = [k for k in inp] for j in range(n): if (((i >> j) & 1) == 1): combination[j] = inp[j].upper() temp = "" # Printing current combination for i in combination: temp += i print(temp), # Driver code permute("Hello") # This code is contributed by Sachin Bisht
      My code in AutoIt:
      ; https://www.geeksforgeeks.org/permute-string-changing-case/ _PermuteCase("ABC") Func _PermuteCase($sText) If StringRegExp($sText, "^[A-Za-z]{1,}$") Then Local $iLength = StringLen($sText) ; Get length of the text. Local $iMaxPerm = 2 ^ $iLength ; Number of permutations is 2^n Local $sLow_Text = StringLower($sText) ; Converting string to lower case Local $asChrs = StringToASCIIArray($sLow_Text) ; Split the text into array of chars. For $i = 1 To $iMaxPerm Step 1 For $j = 0 To $asChrs[0] ;................................................... Next Next Else Return SetError(-1, 0, "Error: Input is incorrect!") EndIf EndFunc ;==>_PermuteCase  
       
       
       
       
       
      ====================== SOLUTION by @TheXman ======================
       
    • By jmp
      i am trying to get number from string using this code :
      #include <IE.au3> $oIE = _IEAttach ("Edu.corner") Local $aName = "Student name & Code:", $iaName = "0" Local $oTds = _IETagNameGetCollection($oIE, "td") For $oTd In $oTds If $oTd.InnerText = $aName Then $iaName = $oTd.NextElementSibling.InnerText $iGet = StringRegExpReplace($iaName, "\D", "") EndIf Next MsgBox(0, "", $iGet) it was get number like 52503058
      But, I want to get only student code 5250. (Different student have different code, sometime its 3 digits, Sometime 4)

       
×
×
  • Create New...