Jump to content

Help Changing "Last First MI" to "First MI Last"


Recommended Posts

Another example.

Local $string = "Ali Omar Sheariff, 31, of a fake address, continued." & @CRLF & _
        "de la Harpe Mean Francois, Miscellaneous writer." & @CRLF & _
        "de Looze Henk, 33, a Dutch guy." & @CRLF & _
        "Ballard Liz Anne Marie, 60, of another fake address" & @CRLF & _
        "La Blanc Sean P, 46, homeless." & @CRLF & _
        "Le Barbier Jean Jacques-Francois, 30, 6 ft under." & @CRLF & _
        "van der Zande Jos, 22, no intro needed." & @CRLF & _
        "McMillen Sir Barry E, 52, of another address, continued."

ConsoleWrite(StringRegExpReplace($string, "(?i)(v?a?n? ?d?(?:a|e)?r? ?l?(?:a|e)? ?S+)h(.+?),(.+)", "2 1,3") & @LF)

#cs
    Returns:-
    Omar Sheariff Ali, 31, of a fake address, continued.
    Mean Francois de la Harpe, Miscellaneous writer.
    Henk de Looze, 33, a Dutch guy.
    Liz Anne Marie Ballard, 60, of another fake address
    Sean P La Blanc, 46, homeless.
    Jean Jacques-Francois Le Barbier, 30, 6 ft under.
    Jos van der Zande, 22, no intro needed.
    Sir Barry E McMillen, 52, of another address, continued.
#ce

I got the original text file and your regex solution doesn't work for some of them (also my solution above):

Local $string = "Ali Omar Sheariff, 31, of a fake address, continued." & @CRLF & _
        "de la Harpe Mean Francois, Miscellaneous writer." & @CRLF & _
        "de Looze Henk, 33, a Dutch guy." & @CRLF & _
        "Ballard Liz Anne Marie, 60, of another fake address" & @CRLF & _
        "La Blanc Sean P, 46, homeless." & @CRLF & _
        "Le Barbier Jean Jacques-Francois, 30, 6 ft under." & @CRLF & _
        "van der Zande Jos, 22, no intro needed." & @CRLF & _
        "Primous Louis Jr K, 53, of 1571 Mound St, theft, dismissed, domestic violence, dismissed." & @CRLF & _
        "Jackson Darryl Jr Anthony, 23, of 918 Clifton Ave, violation of tpo, bench warrant ordered." & @CRLF & _
        "Judge Trempe E. Thomas." & @CRLF & _
        "McMillen Sir Barry E, 52, of another address, continued."

ConsoleWrite(StringRegExpReplace($string, "(?i)(v?a?n? ?d?(?:a|e)?r? ?l?(?:a|e)? ?S+)h(.+?),(.+)", "2 1,3") & @LF)

Anyhow, I like your regex solutions!

Br,

UEZ

Edited by UEZ

Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Link to comment
Share on other sites

  • Replies 42
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

I think I have it doing what it needs to do now.

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

Local $username = EnvGet("USERNAME")
Local $userprofile = EnvGet("USERPROFILE")
$TextFileName = $userprofile & "DesktopMuniCourtData.txt"
WinActivate ("MuniCourtData")
Send("^s")
WinClose ("MuniCourtData")
Local $LineCount = _FileCountLines($TextFileName)

;fixes midline returns
$FileContents = FileRead($TextFileName)
$FileContents = StringReplace($FileContents, @CR,"#")
FileDelete($TextFileName)
FileWrite($TextFileName,$FileContents)
$FileContents = 0

$FileContents = FileRead($TextFileName)
$FileContents = StringReplace($FileContents, @CRLF,"#")
FileDelete($TextFileName)
FileWrite($TextFileName,$FileContents)
$FileContents = 0

$FileContents = FileRead($TextFileName)
$FileContents = StringReplace($FileContents, @LF,"")
FileDelete($TextFileName)
FileWrite($TextFileName,$FileContents)
$FileContents = 0
Dim $i
Do
$i += 1


$FileContents = FileRead($TextFileName)
$Name = _StringBetween($FileContents, '#', ',')
If @error Then Exit
$FullName = _StringProper(StringRegExpReplace($Name[0], '#', ''))
$Lastname = _StringBetween($FullName, '', ' ')
$Firstname = _StringBetween($FullName, ' ', '')

$FileContents = FileRead($TextFileName)
$FileContents = StringReplace($FileContents, $Lastname[0] & " " & $Firstname[0], $Firstname[0] & " " & $Lastname[0])
FileDelete($TextFileName)
FileWrite($TextFileName,$FileContents)
$FileContents = 0

$FileContents = FileRead($TextFileName)
$FileContents = StringReplace($FileContents, "#" & $Firstname[0], @CRLF & $Firstname[0])
FileDelete($TextFileName)
FileWrite($TextFileName,$FileContents)
$FileContents = 0

$FileContents = FileRead($TextFileName)
$FileContents = StringReplace($FileContents, ":##", ":",1)
FileDelete($TextFileName)
FileWrite($TextFileName,$FileContents)
$FileContents = 0

$FileContents = FileRead($TextFileName)
$FileContents = StringReplace($FileContents, "##", @CRLF)
FileDelete($TextFileName)
FileWrite($TextFileName,$FileContents)
$FileContents = 0

;Reset variables
$Name = 0
$FullName = 0
$Firstname = 0
$Lastname = 0
$FileContents = 0
Until $i = $LineCount

;Launches the updated file
ShellExecute ($userprofile & "DesktopMuniCourtData.txt")
WinActivate ("MuniCourtData")

The only thing I can't figure out is why it won't launch the file after the loop exits. It will launch it sometimes but not others. The log shows a clean exit but it just won't open the document after the loop:

>Running:(3.3.8.1):C:Program Files (x86)AutoIt3autoit3.exe "C:MuniCourt.au3"
--> Press Ctrl+Alt+F5 to Restart or Ctrl+Break to Stop
+>18:20:37 AutoIT3.exe ended.rc:0
>Exit code: 0 Time: 3.023
Edited by polingkyle
Link to comment
Share on other sites

Your hard drive hasn't long to live ;)

Edit: And on a more constructive note, your hard drive is likely still busy executing one of the multitude of file reads, writes, and deletes in your script. If you're intent on this mega-I/O-intensive approach, you'll likely need to insert a Sleep() prior to your ShellExecute() to give your hard drive a chance to catch up to your script. Start at Sleep(100) and bump it up by 100 until you get a consistant success rate.

Edited by Spiff59
Link to comment
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
 Share

  • Recently Browsing   0 members

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