Ergebnis 1 bis 2 von 2

Thema: Anfängerfrage zu Table oder was auch immer das ist.

  1. #1

    Standard Anfängerfrage zu Table oder was auch immer das ist.

    Hallo

    Ich bin derzeit dabei ein LightRoom Plugin zu schreiben und habe ein Verständnisproblem. Bin neu in LUA und arbeite mich grad ein nach den try and error Prinzip.
    Aber hier komm ich grad nicht weiter. Weder mit Google noch mit meinem Buch.

    Was ist das hier genau? Eine Table?

    Code:
    local CreatorExternalToolFilterProvider = {}
    
    CreatorExternalToolFilterProvider.exportPresetFields = {
        { key = 'destwidth',	 		default = '1920' },
        { key = 'destheight',	 		default = '1080' },
        { key = 'enlarge',	 			default = false },
    }
    Wie kann ich einen einzelnen Wert z.B. die destwith wieder heraus bekommen etwa mit einem simplen print.
    Alle Syntaxvarianten führen entweder zu NIL oder einem Fehler aber nie zu 1920.

    Vielen Dank schon mal für die Hilfe
    Marcus

  2. #2

    Standard AW: Anfängerfrage zu Table oder was auch immer das ist.

    Das ist ein 2 dimensionales table, sprich listen in einer liste. Das kann man mehrfach machen, wie tief das limit ist weiß ich aber nicht.
    http://lua-users.org/wiki/TablesTutorial


    Mit
    Code:
    auswahl = table[1]
    gibst du der variable "auswahl" den zweiten table als kopie.

    Die werte kannst du dir dann so ausgeben:

    print(auswahl.key)
    print(auswahl.default)

    oder auch

    print(auswahl[0])
    print(auswahl[1])



    Wenn du die daten ändern willst, darfst du keine kopie erstellen oder musst zumindest die daten danach wieder zusammenführen.

    direkt ändern:

    table[1].key="destheight_neu"

    ändert "destheight" in "destheight_neu"



    zusammenführen:

    auswahl = table[1]
    auswahl.key="destheight_neu"
    table[1] = auswahl


    Mit dieser funktion kannst du table und sub-table in der konsole ausgeben.
    Für bessere lesbarkeit hab ich "CreatorExternalToolFilterProvider.exportPresetFie lds" in "tbl" umbenannt.

    Code:
    local tbl = {
        { key = 'destwidth',	 		default = '1920' },
        { key = 'destheight',	 		default = '1080' },
        { key = 'enlarge',	 			default = false },
    }
    
    function printTable(_tbl)
      for k,v in pairs(_tbl) do
        if type(v) == "table" then
          printTable(v) --rekursion damit sub-table ebenfalls geprintet werden.
        else
          print(tostring(k).." \t"..tostring(v))
        end
      end
    end
    
    printTable(tbl)

Ähnliche Themen

  1. Antworten: 8
    Letzter Beitrag: 08.03.2010, 19:16
  2. Antworten: 8
    Letzter Beitrag: 08.08.2009, 19:24
  3. Arbeitsspeicher Problem oder auch: omg D;
    Von Airfox im Forum Probleme
    Antworten: 11
    Letzter Beitrag: 02.11.2008, 17:33
  4. Antworten: 12
    Letzter Beitrag: 21.09.2007, 21:38
  5. Kommt Gmod 10 auch für cd oder dvd raus?
    Von L!NK im Forum GMod Allgemein
    Antworten: 6
    Letzter Beitrag: 29.06.2007, 17:25

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •