So ist es. Mit der Programmiersprache hat das aber wenig zu tun: Es wäre wohl in jeder beliebigen so.Jan Eisold hat geschrieben:Hallo !Rolf R hat geschrieben:Frage an Jan Bochmann, da ich mich mit der Programmiersprache C nicht auskenne:
Ich nehme mal an, dass mit "N=MAX" eine Funktion aufgerufen wird, die zunächst prüft, ob für die Linie die Nr. 999 (3.86: 99999) frei ist.
Wenn ja, erhält der Zug die Nummer, wenn nein prüft BAHN wahrscheinlich ob 998 (oder 99998) frei ist usw. Und das so lange, bis eine freie Nummer gefunden wurde.
Das wäre denkbar, aber die allgemeinere Variante von Jan E. hat auch ihren Charme.Jan Eisold hat geschrieben:Rolf R hat geschrieben: Wäre es da vielleicht möglich, diesen ersten Wert für MAX manuell festzulegen (ggf. durch eine Abfrage beim Importieren eines Netzes aus einer Version, die älter ist als 3.86)? Das würde für Viele den späteren Umstieg auf jeden Fall erleichtern.
Ich werde das prüfen.Jan Eisold hat geschrieben: Hm, wenn man sowas einführt, dann wäre es ggf. sinnvoll, das gleich wie folgt zu lösen:
Neben N=MAX gibt es eine Anweisung N=MAX(999), bei der man die höchstmögliche Zugnummer eingeben kann (hier: 999). Wäre die nicht frei, würde automatisch die nächstkleinere Nummer gewählt. Analog wäre das auch für N=MIN(101) denkbar: Hier würde BAHN die kleinste freie Zugnummer, jedoch beginnend ab 101 aufwärts, suchen. Wenn man das so lösen würde, müssten Netze aus früheren Dateiformaten in BAHN 3.86 beim Laden so konvertiert werden, dass N=MAX durch N=MAX(999) ersetzt wird.
Das ist zu befürchtenJan Eisold hat geschrieben: Und wer weiß, vielleicht gibt es findige Nutzer, die diese Funktionserweiterung auch noch für andere nützliche Dinge gebrauchen können...
Grüße
Jan B.