A-Z sortieren

  • also ich habe eine Text Datei in der in jeder Zeile ein Wort steht.
    und die Wörter hätte ich dann gerne von A-Z sortiert.
    Gibt es da von AutoIt eine Funktion oder muss ich mir da selber was bauen?

  • Ich habe dir mal das lästige Suchen mit der SuFu abgenommen ;)
    (sonst hättest du mglw. meinen Beitrag nicht gefunden :lol:)
    Neuer QSort für AutoIt
    Mußte vllt. noch umbasteln, wenn ich mich recht entsinne, erwartet QSort ein Array, aber das ist ja kein Problem, oder?
    Gruß
    ytwinky

    (Ich) benutze stets die aktuelle (Beta) und SciTE..

    • Offizieller Beitrag

    HI,

    kannst auch einfach:

    [autoit]

    #include <file.au3>
    #include <Array.au3>
    Dim $lines_A[3] = ["Hugo", "Bernd", "Alfred"]
    #cs
    If Not _FileReadToArray("sort.txt",$lines_A) Then
    MsgBox(4096,"Error", " Error reading log to Array error:" & @error)
    Exit
    EndIf
    #ce
    _ArrayDisplay($lines_A,"1")
    _ArraySort($lines_A)
    _ArrayDisplay($lines_A,"2")

    [/autoit]

    So long,

    Mega

  • Hi,
    so sollte es gehen:

    [autoit]

    #include <file.au3>
    #include <array.au3>
    dim $array
    _FileReadToArray(@ScriptDir & "\input.txt",$array)
    _ArraySort($array)
    _FileWriteFromArray(@ScriptDir & "\output.txt",$array,1)

    [/autoit]

    Gruss
    eddy_erpel

    2 Mal editiert, zuletzt von Eddy_Erpel (15. März 2007 um 20:52)

  • Ich hab´s fast so wie Eddy_Erpel es vorgeschlagen hat gemacht:

    [autoit]

    #include <Array.au3>
    #include <File.au3>

    [/autoit][autoit][/autoit][autoit]

    Dim $array
    If _FileReadToArray(@ScriptDir&"\Lernen.txt", $array) = 0 Then
    MsgBox(0, "ERROR", "ERROR" & @error)
    Exit
    EndIf
    _ArraySort($array)
    FileDelete(@ScriptDir & "\Text.txt")
    _FileCreate(@ScriptDir&"\Text.txt")
    $FO = FileOpen(@ScriptDir&"\Lernen.txt", 1)
    For $i = 1 To $array[0]
    FileWrite($FO, $array[$i] & @CRLF)
    Next
    FileClose($FO)

    [/autoit]


    --------------------------------------------------------------------------------------------

    [autoit]

    _FileWriteFromArray(@ScriptDir & "\output.txt",$array,1)

    [/autoit]


    Das habe ich nicht gemacht weil dann so was bei rauskam wenn man es öfter macht:

    Spoiler anzeigen

    6
    5
    4
    abc
    du
    hallo
    wir

    weil dann immer $array[0] mitgeschrieben wurde.


    funktioniert jetzt alles super.
    Danke Für eure Hilfe.