Array richtig verwenden?!^^

  • Hallo ihr lieben. Ich hätte da mal wieder ein kleines Problem. Ich wäre für jede Hilfe dankbar!!

    Folgendes: Ich habe eine Textfile. Ich nenne sie "Zahlen.txt" In dieser txt Datei steht in jeder Zeile eine random Zahl.

    Ich möchte nun, dass autoit erkennt um welche zahl es sich handelt und dann dementsprechend handelt.

    Er soll eine Zahl unter vielen finden können..... und ich möchte nicht 1000(kleine Übertreibung ^^ ) Variablen schreiben. Deshalb dachte ich mir: Soll er sie aus dem Array raussuchen: An sich funktioniert die Sache, aber schaut selbst ^^ :

    #include <Array.au3>
    Dim $sl1[10] ;sl1 = versuch ---->readline1
    $sl1[0] = "1"
    $sl1[1] = "2"
    $sl1[2] = "3"
    $sl1[3] = "4"
    $sl1[4] = "5"
    $sl1[5] = "6"
    $sl1[6] = "7"
    $sl1[7] = "8"
    $sl1[8] = "9"
    $sl1[9] = "10"

    $line = FileReadLine("Zahlen.txt" , 1)

    If $sl1[0] = $line Then ; ist die zahl 1 in line 1,dann msgbox"funzt", ist die zahl eine andere, dann msgbox"funzt nicht"

    ;an sich funktionert es also

    ;---------------------> wenn ich allerdings hier $sl1[] oder $sl1[0,1,2,3...] angebe, gibt er mir einen Fehler,... bei $sl1 "funzt nicht"(egal welche zahl)
    MsgBox(4096,"Test","Funzt",10)
    Else
    MsgBox(4096,"Test","Funzt nicht",10)
    EndIf

    Im Prinzip möchte ich einfach nur, wie gesagt, dass er eine Zahl, egal welche, aus dem array rauslesen kann. Geht das mit nem Array oder muss ich da andere Methoden verwenden????? Euer grübelnder Dönn3y XD :) Danke

  • hi,

    um bei deinen parametern zu bleiben schlage ich folgendes beispiel vor:

    Spoiler anzeigen
    [autoit]

    #include <File.au3>
    _FileReadToArray ( "zahlen.txt", $aArray )

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

    $line=100

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

    For $i = 1 to $aArray[0]
    If $aArray[$i]=$line Then
    MsgBox(4096,"Test","Funzt",10)
    Else
    MsgBox(4096,"Test","Funzt nicht",10)
    EndIf
    Next

    [/autoit]

    gruss exberliner

  • Wäre schön den Sinn zu erfahren, so kann ich mir nicht vorstellen wozu es gut sein soll bzw. wie man weiter helfen kann :(

    Mfg
    Jens (McPoldy)

    Twitter: jkroeger

    Denn die Dinge, die wir erst lernen müssen, bevor wir sie tun, lernen wir beim Tun.(Aristoteles)

  • Hi. Das Projekt ist für die Schule. (Verwendung eines Arrays) Es soll eine txt datei geben. In die erste line der txt datei soll jemand seinen namen eingeben. die namen kenne ich und kann sie dementsprechend in dem array speichern. Autoit soll jetzt nur sagen ob der Name bzw hier die zahl in dem array vorkommt und diese erkennen. Dann schickt er mir nur eine Msg Box in der steht, dass der Name darin vorkommt oder nicht. Ps: das ganze soll keine searching funktion werden ^^ . ich hoffe ich konnte es einigermaßen verständlich erklären.

    ExBerliner: irgendwie kann ich damit nichts anfangen ^^

    gruß

  • Moin Dönn3y,

    warum verwendest du nicht '_ArraySearch()' ?
    So wie ich das verstanden habe ist das genau das was du brauchst.

  • Zitat

    Ps: das ganze soll keine searching funktion werden


    @JanSchmidt Vielleicht deshalb ;)

    Mfg
    Jens (McPoldy)

    Twitter: jkroeger

    Denn die Dinge, die wir erst lernen müssen, bevor wir sie tun, lernen wir beim Tun.(Aristoteles)

  • ja aber, er soll die suche wohl "selber" schreiben :)

    Spoiler anzeigen
    [autoit]


    ; In diese Variabel wird der Wert der 1. Zeile aus der Textdatei eingelesen
    $search = FileReadLine("Zahlen.txt",1)

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

    ; Diese Variable bekommt alle möglichen Werte und ist ein Array, sieht dann so aus:
    ;~ $array[0] = 10 => Anzahl der Einträge im Array
    ;~ $array[1] = 1 => Wert
    ;~ $array[2] = 2 => Wert
    ;~ $array[3] = 3 => Wert
    ;~ $array[4] = 4 => Wert
    ;~ $array[5] = 5 => Wert
    ;~ $array[6] = 6 => Wert
    ;~ $array[7] = 7 => Wert
    ;~ $array[8] = 8 => Wert
    ;~ $array[9] = 9 => Wert
    ;~ $array[10] = 10 => Wert
    $array = StringSplit("1,2,3,4,5,6,7,8,9,0", ",")

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

    ; Die For...Next Schleife, $int ist eine Zählvariable,
    ;die bei jedem durchlauf um 1 erhöht wird
    For $int = 1 To $array[0] ;<= Druchlaufe die Schleife von 1 bis 10
    If $search = $array[$int] Then ;<= Wenn der Wert aus $search gleich dem aus dem Arrayfeld ist, dann....
    MsgBox(64,"Info","Wert wurde gefunden.") ;<= gib mir eine MsgBox, mit einer Erfolgsmeldung
    Exit 0 ;<= Verlasse das Skript
    EndIf ;<= Ende der If Abfrage
    Next ;<= Ende der For...Next Schleife
    MsgBox(48,"Info","Wert wurde NICHT gefunden.") ;<= Wenn nicht gefunden dann Meldung ausgeben
    Exit 0 ;<= Skript beenden

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

    glaube er meint es etwa so.

    Mfg
    Jens (McPoldy)

    Twitter: jkroeger

    Denn die Dinge, die wir erst lernen müssen, bevor wir sie tun, lernen wir beim Tun.(Aristoteles)

    Einmal editiert, zuletzt von McPoldy (19. Februar 2008 um 13:37)

  • das ist es mcpoldy. danke!! aber kannst du mir diese for...to...next funktion erklären. irgendwie versteh ich die nicht ^^ ich sollte ja e ig auch verstehen, was ich verwende. danke

  • Naja hab trozdem mal nen bissel was in den Quelltext geschrieben, aber Xenobiologist hat schon recht, die Hilfe ist ne gute Hilfe (was blöderes ist mir grade nicht eingefallen ;) )

    Mfg
    Jens (McPoldy)

    Twitter: jkroeger

    Denn die Dinge, die wir erst lernen müssen, bevor wir sie tun, lernen wir beim Tun.(Aristoteles)

    • Offizieller Beitrag

    Eines vielleicht noch:

    Spoiler anzeigen
    [autoit]


    ; Diese Variable bekommt alle möglichen Werte und ist ein Array, sieht dann so aus:
    ;~ $array[0] = 10 => Anzahl der Einträge im Array
    ;~ $array[1] = 1 => Wert
    ;~ $array[2] = 2 => Wert
    ;~ $array[3] = 3 => Wert
    ;~ $array[4] = 4 => Wert
    ;~ $array[5] = 5 => Wert
    ;~ $array[6] = 6 => Wert
    ;~ $array[7] = 7 => Wert
    ;~ $array[8] = 8 => Wert
    ;~ $array[9] = 9 => Wert
    ;~ $array[10] = 10 => Wert
    $array = StringSplit("1,2,3,4,5,6,7,8,9,0", ",")

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

    ; könnte auch einfach so aussehen:

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

    Global $array[10] = [1,2,3,4,5,6,7,8,9,0]

    [/autoit]


    Mega