Startseite › Foren › Deutsches LiveCode-Forum › Arrays in lesbarer Form
Schlagwörter: Array
- Dieses Thema hat 4 Antworten und 3 Teilnehmer, und wurde zuletzt aktualisiert vor 4 Jahren, 9 Monaten von Gil.
-
AutorBeiträge
-
-
Dezember 5, 2019 um 23:41 Uhr #17364
2. Versuch – eben gabs ne Fehlermeldung vom Forum…
hallo ihr Lieben,
unter
http://lessons.livecode.com/m/4071/l/21022-how-do-i-display-an-array-in-human-readable-formgibt es ein sehr gutes Beispiel, wie man Inhalte von Arrays z.B. in Text-Dateien ausgeben kann.
Woran ich scheitere:
Ich möchte wirklich nur die Inhalte sehen, im Beispiel sieht man u.a. die [] für die Felder.Danke vorab
-
Dezember 10, 2019 um 07:21 Uhr #17407
Hi Gil,
ich habe dasselbe Problem gehabt und mir die Funktion umgebaut. Hier ist der Code
on mouseUp pMouseButton put the arraydata of widget "Tree" into tArray put displayArrayData(tArray, " ") into tTexttree replace "=> " with empty in tTexttree replace "=> Array" with empty in tTexttree put tTexttree into field "TextTree" end mouseUp function displayArrayData pArray, pIndent # create the variable that loops through the keys in the array local tKey if pArray is an array then # print information to indicate that we are entering a new nested level of the array get "Array" & return # print full stops that allow the reader to track the depth of an element put " " after pIndent # create the indentation put tab after pIndent repeat for each key tKey in pArray # call displayArrayData with a nested array put format("%s %s => %s\n", pIndent, tKey, displayArrayData (pArray[tKey], pIndent)) after it end repeat delete the last char of it return it else return pArray end if end displayArrayData
-
Dezember 10, 2019 um 20:23 Uhr #17409
Hi Torsten,
jetzt steh ich auf dem Schlauch.
Wieso machst Du den Weg mit dem Widget?Kurz zu meinem Vorhaben:
Ich habe 20 Textbausteine, die wiederum aus verschiedenen Texten (z.B. Nr. des Bausteins, Name, Adresse, Beschreibung1 Beschreibung 2) zusammen gebaut werden, diese müssen jedoch in der richtigen Reihenfolge stehen.Die Beschreibungen sind unterschiedlich lang, daher möchte ich dies mit Arrays realisieren.
Am Ende soll ein gesamter Text entstehen.
Also Textbaustein 1 sieht z.B. so aus:
1,Hans,Hofgasse 2,guter Bekannter aus einem Märchen,hat verdammt viel GlückTextbaustein 2:
2,Gretel,Waldstraße 15,Schwester von Hänsel,hat Hexe auf dem GewissenDie Texte für die Array-Felder werden z.B. per “put” übertragen
put “1” into tMärchenArray [1][1]
put “Hans” into tMärchenArray [1][2]
put “Hofgasse 2” into tMärchenArray [1][3]
put “guter Bekannter aus einem Märchen” into tMärchenArray [1][4]
usw.Zum Schluss soll das Ganze so aussehen:
1
Hans
Hofgasse 2
guter Bekannter aus einm Märchen
hat verdammt viel Glück2
Gretel
Waldstraße 15
Schwester von Hänsel
hat Hexe auf dem Gewissen
.
.
.Die Beschreibungen haben natürlich mehr als eine Zeile, sonst wäre es zu einfach…
Für Ähnlichkeiten mit lebenden oder bereits verstorbenen Personen wird keine Haftung übernommen… 🙂
Grüße
Gil -
Dezember 11, 2019 um 13:33 Uhr #17418
Hi Gil,
das hier klappt mit Deinem Beispiel, egal wieviele Keys das Array am Ende hat.
Bei Arrays mit einer unbekannten Anzahl Keys, wie in der LC Lektion, ist es schon weitaus schwieriger!
on mouseUp put "1" into tMärchenArray [1][1] put "Hans" into tMärchenArray [1][2] put "Hofgasse 2" into tMärchenArray [1][3] put "guter Bekannter aus einem Märchen" into tMärchenArray [1][4] put "hat verdammt viel Glück" into tMärchenArray [1][5] put "2" into tMärchenArray [2][1] put "Gretel" into tMärchenArray [2][2] put "Waldstrasse 15" into tMärchenArray [2][3] put "Schwester von Hänsel" into tMärchenArray [2][4] put "hat Hexe auf dem Gewissen" into tMärchenArray [2][4] ## Arrays liegen nicht immer sortiert vor, daher: put the keys of tMärchenarray into tKeys1 sort tKeys1 numeric ## Hierdrin sammeln wir die Inhalte des Arrays: put EMPTY into tMärchenListe ## Nun ein Loop durch alles Keys: repeat for each line tKeyNumber in tKeys1 put tMärchenArray[tKeyNumber] into tSubArray ## Arrays liegen nicht immer sortiert vor, daher: put the keys of tSubArray into tKeys2 sort tKeys2 numeric ## Nun hier auch ein Loop, der alle Inhalte sammelt und in einer Zeile anzeigt repeat for each line tSubKeyNumber in tKeys2 put tMärchenarray[tKeyNumber][tSubKeyNumber] & CR after tMärchenListe end repeat put CR after tMärchenListe end repeat ## Finale Ausgabe put tMärchenListe into fld 1 end mouseUp
Gestestet und funktioniert!
Gruß
Klaus
-
Dezember 15, 2019 um 16:57 Uhr #17540
Hallo Klaus,
vielen Dank!
Probiere es heute Abend.Viele Grüße
Gil
-
-
AutorBeiträge
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.