Verschiedene Wörter aus einer Variable auslesen Topic is solved

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

User avatar
Sora-MMK
Posts: 10
Joined: 25 Jan 2018, 12:59
Location: Germany
Contact:

Verschiedene Wörter aus einer Variable auslesen

08 Feb 2018, 12:23

Hallo Leute,

Ich bin recht neu was AHK angeht und suche mir so ziemlich alles in Google zusammen, was ich brauche an Funktionen usw.
Nun bin ich aber auf ein Problem gestoßen dass ich mit Google bisher nicht lösen konnte.

Aktuell möchte ich in meinem Hauptscript einen weiteren Button hinzufügen, dieser sortiert 25 Wörter zufällig und gibt diese dann in einem 5x5 Feld aus.
Ein weiterer Knopf soll später das 5x5 Feld in einen Code einbinden und als Datei exportieren.

Code: Select all

Gui, Font, norm
Gui, Add, Edit, R5 ReadOnly y25 x8 w380 vMyEdit
Gui, Add, Button, y100 x8 w190 h40 gRando, Be Random!
Gui, Add, Button, y100 x198 w190 h40 gSave, Save
Gui, Font, norm
Gui, Show
return
Guiclose:
exitapp

Rando: 
MyVar = "powder","lift1","book","byrna","ocarina","icerod","boomerang","somaria","quake","shovel","ether","flippers","bow","mushroom","bombos","firerod","hammer","cape","lamp","boots","silvers","net","pearl","mirror","hookshot"
Sort, MyVar, Random D,
GuiControl,, MyEdit,
(
[ %MyVar%, "", "", "", "" ]
[ "", "", "", "", "" ]
[ "", "", "", "", "" ]
[ "", "", "", "", "" ]
[ "", "", "", "", "" ]
)
return

Save:
FileSelectFile, SelectedFile, S3, , Save
FileDelete, %SelectedFile%
FileAppend,
(
{
  "type": "array",
  "background": "#ff00ff",
  "margin": "0",
  "content": [
    {
      "type": "array",
      "dropshadow": false,
      "orientation": "vertical",
      "content": [
        {
          "type": "itemgrid",
          "h_alignment": "center",
          "item_margin": "1,2.5",
          "item_size": 42,
          "rows": [
            [ "", "towerofhera", "", "skullwoods", "", "turtlerock" ],
            [ "", "aga", "", "thievestown", "", "palaceofdarkness" ],
            [ "desertpalace", "", "easternpalace", "miserymire", "swamppalace", "icepalace" ],
            [ "gomode" ],
            [ "sword", "shield", "", "armor", "bottle" ],
            [ "" ],
            [ %MyVar% ],
            [ "" ],
            [ "" ],
            [ "" ],
            [ "" ]
          ]
        },
        {
          "type": "container",
          "margin": "0,5,0,0",
          "content": {
            "type": "recentpins",
            "h_alignment": "stretch",
            "v_alignment": "center",
            "orientation": "vertical",
            "compact": true,
            "num_items": 2
          }
        }
      ]
    }
  ]
}
), %SelectedFile%
return
Wenn das geklappt hat soll ein editierbares Feld noch dazu kommen, wo man einen Dateipfad angibt und ein Knopf der dort den Text/Code als Datei abspeichert. Dafür brauch ich im Moment keine wirkliche Hilfe, da ich selber mich noch nicht damit beschäftigt habe, sage aber nicht nein zu Lösungsansätzen in beiden Bereichen.

EDIT: Das Script ist soweit fertig, auch zum Speichern des Codes. Das einzige was noch nicht funktioniert ist aus %MyVar% die 25 Wörter gezielt einzeln rauszufiltern, um sie an die richtigen Stellen im Code einzubinden. (Code aktualisiert)

Hoffe mir kann jemand helfen.

Grüße,
Sora-MMK
Last edited by Sora-MMK on 08 Feb 2018, 14:07, edited 1 time in total.
User avatar
divanebaba
Posts: 805
Joined: 20 Dec 2016, 03:53
Location: Diaspora

Re: Verschiedene Wörter aus einer Variable auslesen

08 Feb 2018, 14:03

Hallo.
Selbstverständlich gibt es hier einen riesen Deppenhaufen, in dem Du immer jemanden mit passenden Antworten finden kannst.
Dazu sollten Deine Fragen möglichst präzise sein und Dein Code möglichst nicht zu ausufernd.
Schön anzuschauen ist schon mal, daß Du die Forum-Tag-Funktionen nutzt und keine kopfzerbrechende Rechtschreibung und keine ebensolche Syntax verwendest.

Was ist denn nun Deine erste Frage? (Einen Button wirst doch schon einfügen können oder?)

EDIT: Jetzt habe ich Deine Frage gefunden. Hatte sich unter einem Texthaufen verschanzt.

StringSplit ist eine schöne Lösung.

Code: Select all

Rando:
MyVar = "powder","lift1","book","byrna","ocarina","icerod","boomerang","somaria","quake","shovel","ether","flippers","bow","mushroom","bombos","firerod","hammer","cape","lamp","boots","silvers","net","pearl","mirror","hookshot"
Sort, MyVar, Random D,
Stringsplit, MyVar_, MyVar, `,
...
Ergebnis sind Variablen mit den Namen MyVar_1, MyVar_2, ..., die Du nun gezielt verwenden kannst.
Last edited by divanebaba on 08 Feb 2018, 14:19, edited 1 time in total.
Einfach nur ein toller Typ. :mrgreen:
User avatar
Sora-MMK
Posts: 10
Joined: 25 Jan 2018, 12:59
Location: Germany
Contact:

Re: Verschiedene Wörter aus einer Variable auslesen

08 Feb 2018, 14:13

Hallo,

vorerstmal nen kurzen Edit:
Das Script ist soweit fertig, auch zum Speichern des Codes. Das einzige was noch nicht funktioniert ist aus %MyVar% die 25 Wörter gezielt einzeln rauszufiltern, um sie an die richtigen Stellen im Code einzubinden. (Code aktualisiert)

Im gLabel "Rando" werden 25 Wörter in %MyVar% zufällig angeordnet. Das war bisher die einzige Möglichkeit die ich fand, etwas zufällig zu würfeln ohne hinterher Sachen doppelt und dreifach zu haben.

Weiter unten habe ich ein Feld im Script

Code: Select all

[ %MyVar%, "", "", "", "" ]
[ "", "", "", "", "" ]
[ "", "", "", "", "" ]
[ "", "", "", "", "" ]
[ "", "", "", "", "" ]
Dort soll anstatt "" überall ein Wort von der variable eingetragen werden. Ich weiß aber nicht wie ich die Wörter einzeln abrufen kann. Es würde schon reichen wenn im ersten das erste Wort, im zweiten das zweite etc. da es ja vorher schon durchgewürfelt wird.

Das Ergebnis soll sein, jedesmal wenn ich auf den vorhandenen Button drücke, die Anordnung anders wiedergegeben wird und mit dem zweiten die Datei ersetzt und sofort einsatzbereit ist. Wie erwähnt funktioniert schon alles bis auf das auslesen der Wörter. Dies ist meine erste und nur noch einzige Frage.
User avatar
divanebaba
Posts: 805
Joined: 20 Dec 2016, 03:53
Location: Diaspora

Re: Verschiedene Wörter aus einer Variable auslesen  Topic is solved

08 Feb 2018, 14:34

Spoiler
Hier das komplette Skript mit meiner Ergänzung.
Einfach nur ein toller Typ. :mrgreen:
User avatar
Sora-MMK
Posts: 10
Joined: 25 Jan 2018, 12:59
Location: Germany
Contact:

Re: Verschiedene Wörter aus einer Variable auslesen

08 Feb 2018, 14:54

Okay, also ist das, was ich die ganze Zeit gesucht habe folgendes:

Code: Select all

Stringsplit, MyVar_, MyVar, `,
Okay, ich verstehe es, muss aber sagen bei allen Seiten die ich durchforstet habe bin ich nicht drauf gestoßen =/

Dann wäre das Thema tatsächlich gelöst. Ich danke dir vielmals für deine Hilfe!

Eine Frage habe ich noch, was ist die Bedeutung von

Code: Select all

#SingleInstance Force
Gui, +Resize +Caption
EDIT: Habs rausgefunden, danke =)
User avatar
divanebaba
Posts: 805
Joined: 20 Dec 2016, 03:53
Location: Diaspora

Re: Verschiedene Wörter aus einer Variable auslesen

08 Feb 2018, 15:14

#SingleInstance Force bewirkt, daß das Skript ohne Fehlermeldung erneut gestartet werden kann. Ohne diesen Zusatz in der "Auto-Execute-Sektion", würde die Fehlermeldung lauten, daß eine alte Version des Skripts bereits läuft und die Frage gestellt, ob diese abgebrochen werden soll.

Gui, +Resize +Caption Diese Option habe ich eingefügt, um das Fenster vergrößern und den kompletten Inhalt sehen zu können. Die Option +Resize gehört zur Gui, wenn man das Label GuiSize nutzen will. +Caption ist vielleicht nicht notwendig, da dieses nur den Rahmen ein- oder ausblendet. -Caption sieht ganz interessant aus, ist aber nicht jedermanns Sache. Die Gui sollte auch ohne die Option +Caption skalierbar sein.

Wo Du schon mal fragst, Gui, +Resize MinSize550x150, "MinSize550x150" könnte etwas für Dich sein. Einfach die vorhandenen Werte mit eigenen ergänzen. Dann hast Du eine minimale Gui-Größe, die nicht so einfach unterschritten werden kann. Vielleicht ganz nützlich.

Viele Gui-Styles hier
Einfach nur ein toller Typ. :mrgreen:

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: No registered users and 26 guests