2D-Array - [Zahlen setzen]

  • Hi Community,

    ich habe gerade das Problem, ein 2D-Array mit Zahlen zu füllen. Nehmen wir an ich habe folgende Zahlen so in einer Datei:

    Spoiler anzeigen

    >>> 24 x Spalten breit und 18 x Zeilen lang

    [autoit]


    999999999999999999999999
    922222222222222222222229
    999999999999999999999999
    999999999999999999999999
    999999999999999999999999
    999999999999999999999999
    999999999999999999999999
    999999999999999999999999
    999999999999999999999999
    999999999999999999999999
    999999999999999999999999
    999999999999999999999999
    999999999999999999999999
    999999999999999999999999
    933333333333333333333339
    999999999999999999999999
    922222222222222222222229
    999999999999999999999999

    [/autoit]

    Nun möchte ich diese Zahlen genau so in ein 2D-Array schreiben. Mein Anfang:

    [autoit]


    #include <String.au3>
    #include <array.au3>

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

    Dim $array[18][24]
    $zahlencode = ; Zahlen von oben mit "Enter"
    $zahlencode_ol = StringReplace($zahlencode, @CRLF, "") ; Enter entfernen
    $zahlencode_so = StringSplit($zahlencode_ol, "") ; Alle Zahlen zerlegen - $zahlencode_so[0] enthält nun die Anzahl aller Zahlen - $zahlencode_so[1] die erste Zahl

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

    ; Hier mein Hauptproblem - das Befüllen der Variable - funktioniert noch nicht:

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

    For $i = 0 To 17
    For $k = 0 To 23
    If $zahlencode_so[($i * 24) + $k] = 9 Then
    $array[$i][$k] = 9
    EndIf
    Next
    Next

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

    _ArrayDisplay($array)

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

    Vielen Dank schonmal,
    lg Jautois

    Einmal editiert, zuletzt von Jautois (28. April 2009 um 14:28)

    • Offizieller Beitrag

    Meinst Du so:

    Spoiler anzeigen
    [autoit]


    #include <String.au3>
    #include <array.au3>

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

    Dim $array[18][24]
    $zahlencode = FileRead('zahlen.txt'); Zahlen von oben mit "Enter"
    $zahlencode_ol = StringReplace($zahlencode, @CRLF, "") ; Enter entfernen
    $zahlencode_so = StringSplit($zahlencode_ol, "", 2) ; <-- ",2" damit $zahlencode_so[0] die erste Zahl ist und nicht die Anzahl der Elemente

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

    For $i = 0 To 17
    For $k = 0 To 23
    If $zahlencode_so[($i * 24) + $k] = 9 Then
    $array[$i][$k] = 9
    EndIf
    Next
    Next

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

    _ArrayDisplay($array)

    [/autoit]
  • Hallo jautois,

    in der Lösung von Oscar erscheinen aber nur die 9'er in dem Array.
    Wenn Du alle Zahlen in Deinem Array haben willst, dann kannst Du das so lösen:

    Spoiler anzeigen
    [autoit]

    #include <array.au3>
    #include<file.au3>
    Dim $array[18][24]
    Global $zahlencode
    _FileReadToArray(@DesktopDir&'\zahlen.txt',$zahlencode); Zahlen von oben mit "Enter"
    For $i = 0 To $zahlencode[0]-1
    For $t = 0 To 23
    $array[$i][$t] = StringMid($zahlencode[$i+1],$t+1,1)
    Next
    Next
    _ArrayDisplay($array)

    [/autoit]

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    über mich...

    ich habe meine Erfahrungen hauptsächlich gesammelt in (grobe Übersicht):

    - RibbonBar Automation
    - MySQL Nutzung
    - GUIs in vielerlei Ausprägung
    - Nutzung von Powershell / Batch in AutoIt
    - Windows Automatisierung

    außerhalb von AutoIt:

    - Sprachen: PS, Batch, php, html(5), javascript, (perl eingeschränkt), vbs
    - Powershell (AD, WPF inkl. Multi-Threading, ...)
    - Deployment-Automatisierung ohne SCCM
    - Office-Nutzung mit COM-Object (AutoIt, PowerShell)
    - ActiveDirectory und alles was damit zusammenhängt
    - Hyper-V Clustering (Converged / Hyper Converged)
    - Serverhardware (Konfiguration, Aufbau, Architektur, Betrieb)

    Lieblingsthema:

    günstige Automatisierung von Vorgängen, für die andere Firmen viel Geld nehmen

    more to come ...

  • Oscar ,

    ich dachte nur, weil er geschrieben hat:

    Zitat

    Nun möchte ich diese Zahlen genau so in ein 2D-Array schreiben. Mein Anfang:

    Ansonsten sorry,
    will nicht dazwischenfunken ;(

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    über mich...

    ich habe meine Erfahrungen hauptsächlich gesammelt in (grobe Übersicht):

    - RibbonBar Automation
    - MySQL Nutzung
    - GUIs in vielerlei Ausprägung
    - Nutzung von Powershell / Batch in AutoIt
    - Windows Automatisierung

    außerhalb von AutoIt:

    - Sprachen: PS, Batch, php, html(5), javascript, (perl eingeschränkt), vbs
    - Powershell (AD, WPF inkl. Multi-Threading, ...)
    - Deployment-Automatisierung ohne SCCM
    - Office-Nutzung mit COM-Object (AutoIt, PowerShell)
    - ActiveDirectory und alles was damit zusammenhängt
    - Hyper-V Clustering (Converged / Hyper Converged)
    - Serverhardware (Konfiguration, Aufbau, Architektur, Betrieb)

    Lieblingsthema:

    günstige Automatisierung von Vorgängen, für die andere Firmen viel Geld nehmen

    more to come ...

  • Schnuffel: Vielen Dank für deine Mühe! Aber ich das Problem hatte sich nach Ocsar's Post erledigt. Sorry, wenn ich mich oben etwas "freiläufiger" geäußert habe.

    Zitat

    Ansonsten sorry,
    will nicht dazwischenfunken ;(

    Kein Grund sich hier für etwas entschuldigen zu müssen ;) Freut mich ja, wenn so gerne geholfen wird, also :thumbup:

    lgJautois