Das inoffizielle Forum zu Eisenbahn.exe Professional 7+

juergen18
Benutzeravatar
Team
Beiträge: 990
Registriert: 04.10.2013, 22:43
EEP-Version: 7-13

Tabelle in Lua speichern

Eine Tabelle in Lua zu speichern geht nicht. Ich habe aber im Internet einen Beitrag gefunden, der dies doch für eindimensionale Tabellen möglich macht.
Der Befehl dafür lautet: table.concat

Ich habe mal das Beispiel aus dem Internet für Lua für EEP umgeschrieben, so dass man es auch so einsetzen kann.
Code: Alles auswählen
String_meine_Tabelle = table.concat(meine_Tabelle, ",")
Dadurch wird aus meine_Tabelle ein String mit Namen "String_meine_Tabelle", den man dann komplett in einem Slot
abspeichern kann mit:
Code: Alles auswählen
EEPSaveData(100,String_meine_Tabelle)
Die Rückumwandlung beim Einlesen des String in eine Tabelle erfolgt mit folgender Funktion:

Code: Alles auswählen
function Umformen(Trennzeichen,string_tabelle)
    
    if (Trennzeichen=='') then return false end --wenn kein Trennzeichen angegeben wurde abbrechen
    local pos,arr = 0,{} -- Position(0) im String festlegen und neue Tabelle(arr) anlegen
    -- für jedes Trennzeichen, was gefunden wird, einen neuen Tabelleneintrag anlegen
    for st,sp in function() return string.find(string_tabelle,Trennzeichen,pos,true) end do
        table.insert(arr,string.sub(string_tabelle,pos,st-1)) -- Zeichen rechts vom Trennzeichen in Tabelle (arr) anhängen
        pos = sp + 1 -- Zum nächsten Trennzeichen springen
    end

    table.insert(arr,string.sub(string_tabelle,pos)) -- Letzten Eintrag anhängen
    return arr -- in arr steht jetzt wieder die Tabelle
end
Der Aufruf zum Laden lautet dann:
Code: Alles auswählen
Unsinn,String_meine_Tabelle=EEPLoadData(100)
meine_Tabelle=Umformen(",", String_meine_Tabelle)
Damit haben wir in "meine_Tabelle" wieder alle Einträge in Tabellenform.
Wichtig für Lua ist noch, dass im Skript zuerst die function Umformen(...) eingefügt werden muss und danach erst
Unsinn,String_meine_Tabelle=EEPLoadData(100)
meine_Tabelle=Umformen(",", String_meine_Tabelle)
sonst wirft Lua einen Fehler raus, da Lua das Skript von oben nach unten liest und wissen muss,
dass die function Umformen vorhanden ist.

Edit: Fehler in der "function Umformen" korrigiert, statt delimiter muss dort Trennzeichen stehen.
Grüße aus Wattenscheid von Jürgen

Ich habe EEP 7-13
Laptop: Medion i7-6500U CPU 2.5 - 3.1 GHz, 8 GB DDR3-Speicher, NV Geforce GTX 950M, 2 GB DDR3 Speicher, Win 10 64-Bit

Mein aktuelles Projekt: Erweiterung des Tauschmanagers bis EEP 13 (aktuelle Vesion 3.1.2.4) und ein bisschen Lua
Anleitung für den TM zum Download

Postkartenzähler für den TM: 354
maxithing
Benutzeravatar
Beiträge: 2274
Registriert: 05.06.2011, 15:08
Wohnort: Gangelt
EEP-Version: 6 bis 12 E

AW: Tabelle in Lua speichern

Hi Jürgen,
also ich verstehe was gemeint ist ;)
Gruß
Dieter
Gruß
Dieter (DH1)
----------------------------------------------------------------------------------
Rechner: I7 4x4,0 Ghz, 16 GB Ram, Nvidia GTX 970 mit 4 GB Ram
juergen18
Benutzeravatar
Team
Beiträge: 990
Registriert: 04.10.2013, 22:43
EEP-Version: 7-13

AW: Tabelle in Lua speichern

Hallo Dieter,

das dachte ich mir, dass Du als Schaltungsexperte und Lua-Freak das verstehst, aber scheinbar bist Du der Einzige.
Grüße aus Wattenscheid von Jürgen

Ich habe EEP 7-13
Laptop: Medion i7-6500U CPU 2.5 - 3.1 GHz, 8 GB DDR3-Speicher, NV Geforce GTX 950M, 2 GB DDR3 Speicher, Win 10 64-Bit

Mein aktuelles Projekt: Erweiterung des Tauschmanagers bis EEP 13 (aktuelle Vesion 3.1.2.4) und ein bisschen Lua
Anleitung für den TM zum Download

Postkartenzähler für den TM: 354
EepNolie
Benutzeravatar
Beiträge: 55
Registriert: 20.09.2015, 13:21
Wohnort: Tremelo Belgien
EEP-Version: 6-7-9-X-11-12

AW: Tabelle in Lua speichern

Hallo Jürgen,

You can save data in slots, another option is some code I made to save table-data in an inifile.  This is not the magic solution, but it works.  Code can be downloaded from my website.

Greetings,

EepNolie
Windows 7 Ultimate 64Bit - Intel Quad Core i7-4790 4.0Ghz - 16Gb RAM - Asus Geforce GTX-06G 1060 (6Gb) - Dual screen Asus VS247 24"
Laptop i7-4750HQ 3.2Ghz - 16Gb RAM - NVidia GTX960M - Windows 10

EEP 6 - 7 Plugin 1,2,3,4,5 - 9 Expert - 10.5 Expert Plugin 2 - 11.3 Plugin 1,2,3 - 12.1 Plugin 1 - 13

Bild
juergen18
Benutzeravatar
Team
Beiträge: 990
Registriert: 04.10.2013, 22:43
EEP-Version: 7-13

AW: Tabelle in Lua speichern

Hello Noel,

yes, that´s another possibility, to save tables.
Grüße aus Wattenscheid von Jürgen

Ich habe EEP 7-13
Laptop: Medion i7-6500U CPU 2.5 - 3.1 GHz, 8 GB DDR3-Speicher, NV Geforce GTX 950M, 2 GB DDR3 Speicher, Win 10 64-Bit

Mein aktuelles Projekt: Erweiterung des Tauschmanagers bis EEP 13 (aktuelle Vesion 3.1.2.4) und ein bisschen Lua
Anleitung für den TM zum Download

Postkartenzähler für den TM: 354

Ähnliche Themen

Block speichern
in Allgemeines von edvlurch mit 2 Antworten
Installation und richtig speichern
in Allgemeines von gudvangen mit 1 Antworten