Doppelte aussortieren

  • Hallo alle,
    ich habe folgendes problem:
    in einer textdatei sind z.b. folgende begriffe vorhanden:

    Code
    Haus
    Baum
    Auto
    Blume
    Haus
    Dach

    nun brauche ich ein script, welches doppelte begriffe aussortiert und anschließend eine textdatei erstellt,
    in dem dann jeder begriff nur 1 mal vorhanden ist.
    in diesem fall sollte er also "Haus" aussortieren.

    habe da mal paar sachen probiert, die aber leider nicht geklappt haben. hat jmd ne idee??

    danke =)

    Einmal editiert, zuletzt von Frayzer (8. April 2009 um 18:35)

  • hm also ich habe es nun mal so gemacht, funtioniert aber leider nicht so ganz...

    [autoit]

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

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

    Global $file = @ScriptDir & "\Neu Textdokument.txt"
    $i = _FileCountLines($file)
    Dim $array[$i]

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

    _FileReadToArray($file, $array)
    _ArrayUnique($array)
    _ArrayDisplay($array)

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

    Func _ArrayUnique(ByRef $aArray, $vDelim = '', $iBase = 1, $iUnique = 1)
    If $vDelim = '' Then $vDelim = Chr(01)
    Local $sHold
    For $iCC = $iBase To UBound($aArray) - 1
    If Not StringInStr($vDelim & $sHold, $vDelim & $aArray[$iCC] & $vDelim, $iUnique) Then _
    $sHold &= $aArray[$iCC] & $vDelim
    Next
    Return StringSplit(StringTrimRight($sHold, StringLen($vDelim)), $vDelim)
    EndFunc ;==>_ArrayUnique

    [/autoit]
  • Spoiler anzeigen
    [autoit]

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

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

    Local $file = @ScriptDir & "\Neu Textdokument.txt"
    Local $array, $arrayNew

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

    _FileReadToArray($file, $array)
    _ArrayDisplay($array)
    _ArrayDelete($array, 0)
    $arrayNew = _ArrayUnique($array)
    _ArrayDisplay($arrayNew)

    [/autoit] [autoit][/autoit] [autoit][/autoit]
  • ah okay, cool. danke.

    kann man nun auch zufälligerweise anzeigen lassen, welche doppelt waren? :)
    (vor diese z.b. ein ! machen)

    Einmal editiert, zuletzt von Frayzer (8. April 2009 um 17:56)

  • Spoiler anzeigen
    [autoit]

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

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

    Local $file = @ScriptDir & "\Neu Textdokument.txt"
    Local $array, $arrayNew

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

    _FileReadToArray($file, $array)
    _ArrayDisplay($array, 'Datei')
    $arrayNew = _ArrayUnique($array, 1, 1)
    _ArrayDisplay($arrayNew, 'Unique')

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

    _ArrayDelete($array, 0)

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

    For $i = 1 To $arrayNew[0]
    _ArrayDelete($array, _ArraySearch($array, $arrayNew[$i]))
    Next

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

    _ArrayDisplay($array, 'Doppelte')

    [/autoit]