Jump to content

Empfohlene Beiträge

Geschrieben (bearbeitet)

Guten Morgen,

Ich verwende eine Tabelle um die Fahrstraßen den Loks positionsabhängig zuzuweisen.

Die Tabelle heißt Fahrstraße und enthält z.Zt. 50 Tabelleneinträge, die die Abfragestellen, also die Position auf der Anlage enthält. 
Zu jeder Abfragestelle kann ein Zugtyp also die Art des Zuges zugeordnet werden. Die Kombination aus Abfragestelle und ZugTyp ergibt dann die Fahrstraße.

Bei 50 Tabelleneinträgen ist die Sache allerdings sehr unübersichtlich. Ich möchte nun die Tabelle in eine Exceltabelle übernehmen.  Dafür möchte ich Euch bitten, mir ein Script zu schreiben, das mir die Einträge über das Ereignisprotokoll in der Reihenfolge "  Abfragestelle ; ZugTyp ; Fahrstraße  "  ausgibt.

Ein Bild der Tabelle hänge ich an.

Danke schon mal für Eure Bemühungen.

Gruß Jürgen

 

Fahrstraßen.jpg

Bearbeitet von jloos
Rechtschreibfehler
Geschrieben

Hallo Jürgen, 
magst du deine Anlage bitte veröffentlichen?

Dann kann ich deine Tabellen für die Prüfung meines Ansatzes nutzen.
Ich müsste sonst zuerst selbst ein Tabelle mit allen Inhalten erstellen. Dabei bestünde die Gefahr, dass ich Besonderheiten in deiner Tabelle (wie z.B. Zugtyp 10A) nicht berücksichtige. Solche Namen sind für das Vorhaben nämlich echte Fallstricke.

Viele Grüße
Götz

Geschrieben

Hallo @Goetz,

ich kann meine Anlage nur exportieren, weil ich sehr viele eigene Weichenkonstruktionen verwende. 
Ich entschuldige mich schon mal, wenn bei schwachen Rechnern die FPS ziemlich runter geht.

Wer Lust hat, kann mir helfen. Die Anlage läuft lange Zeit sauber, doch dann passiert es, das ein Zug nicht abfährt oder er keine neue Fahrstraße bekommt, oder er fährt in Fahrstraßen, die ihm nicht zugeordnet wurden. 

Ihr findet sicherlich Fehler. Ich freue mich auf Verbesserungsvorschläge und Fehleranalysen.

Die Fahrstraßentabelle möchte ich in Excel sortieren, um Fehler aufzuspüren.

Gruß Jürgen

 

240702_FS.mbp

Geschrieben (bearbeitet)

Hallo Jürgen,
mit folgendem Skript gelingt mir eine formatierte Ausgabe des Tabelleninhalts:

local Text = ""
local Muster = "%s\n%s;%s;%s"
local t = $("Ereignisse").variables["Fahrstraße"]

for i = 1, 50 do
  local Ort = string.format("%02d", i)
  if t[Ort] then
    for j = 1, 10 do
      local ZugTyp = string.format("%02d", j)
      if t[Ort][ZugTyp] then
        local Name = t[Ort][ZugTyp].name
        Text = Muster:format(Text, Ort, ZugTyp, Name)
      end
      ZugTyp = ZugTyp.."A"
      if t[Ort][ZugTyp] then
        local Name = t[Ort][ZugTyp].name
        Text = Muster:format(Text, Ort, ZugTyp, Name)
      end
    end
  end
end

$("Textfeld für Ausgabe").text = Text                      

Die eigentliche Ausgabe habe ich in ein Textfeld geleitet, dem ich den Namen "Textfeld für Ausgabe" gegeben habe.
Dafür dient die letzte Zeile im Skript.

Von dort kann man sie relativ leicht aus den Eigenschaften per Copy entnehmen und in eine separate Textdatei übertragen.

Das Skript selbst ist unschön und unleserlich.
Das liegt unter anderem daran, dass deine einzelnen Zellen nicht nummeriert sind, sondern Zahlen in Form von Strings als Bezeichner haben.

Ich hoffe, dass es für deinen Zweck genügt.

Und falls du nur den Text benötigst (um ihn auf eventuelle Fehler abzuklopfen):

02;04;Strecke 001
02;07;Strecke 001
03;03;Strecke 041
03;04;Strecke 041
03;07;Strecke 041
04;01;Strecke 002
04;02;Strecke 002
04;07;Strecke 002
07;01;Strecke 012
07;02;Strecke 012
08;03;Strecke 019
08;04;Strecke 023
08;05;Strecke 019
08;07;Strecke 023
08;10;Strecke 023
08;10A;Strecke 098
11;03;Strecke 033
11;04;Strecke 076
11;05;Strecke 033
11;07;Strecke 076
11;10;Strecke 033
12;03;Strecke 004
12;10;Strecke 051
13;03;Strecke 015
13;05;Strecke 032
13;10;Strecke 052
15;04;Strecke 050
15;05;Strecke 050
15;07;Strecke 050
15;10;Strecke 100
16;04;Strecke 058
16;05;Strecke 074
16;07;Strecke 058
16;10;Strecke 074
18;04;Strecke 049
18;05;Strecke 029
18;07;Strecke 049
18;10;Strecke 049
19;10;Strecke 099
20;03;Strecke 016
20;10;Strecke 030
23;04;Strecke 070
23;07;Strecke 070
23;10;Strecke 070
25;03;Strecke 037
25;05;Strecke 037
25;10;Strecke 037
27;03;Strecke 020
27;05;Strecke 020
28;10;Strecke 096
30;03;Strecke 044
30;05;Strecke 044
30;10;Strecke 044
32;03;Strecke 095
32;05;Strecke 095
32;10;Strecke 095
34;03;Strecke 021
34;05;Strecke 021
34;10;Strecke 021
37;03;Strecke 035
37;05;Strecke 080
37;10;Strecke 035
39;01;Strecke 005
39;02;Strecke 005
39;03;Strecke 006
39;04;Strecke 006
39;05;Strecke 006
39;07;Strecke 006
39;10;Strecke 006
40;06;Strecke 043
40;09;Strecke 085
41;01;Strecke 009
41;02;Strecke 009
41;03;Strecke 010
41;04;Strecke 010
41;05;Strecke 010
41;07;Strecke 010
41;10;Strecke 010
42;03;Strecke 055
42;05;Strecke 093
42;10;Strecke 055
43;03;Strecke 066
43;05;Strecke 066
44;03;Strecke 036
44;05;Strecke 036
46;04;Strecke 077
46;07;Strecke 077
46;10;Strecke 071
49;03;Strecke 094
49;05;Strecke 094
50;03;Strecke 034
50;05;Strecke 034

 

Viele Grüße
Götz

Bearbeitet von Goetz
Variablennamen geändert
Geschrieben

Gern geschehen, Jürgen.
Ich habe oben ein paar Variablen-Namen abgeändert in der Hoffnung, dass es dadurch ein wenig lesbarer wird.

Geschrieben
vor 13 Stunden schrieb Goetz:

Die eigentliche Ausgabe habe ich in ein Textfeld geleitet, dem ich den Namen "Textfeld für Ausgabe" gegeben habe.

Ergänzend für andere Interessierte noch eine Anmerkung: Die Ausgabe auf dem Textfeld endet bei mir mit  26 Zeilen.
Aber der Tabelleninhalt kann in den Textfeld-Eigenschaften komplett kopiert werden

Gruß Jürgen

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto besitzen, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen.

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...