Hallo Zusammen,
Problem in der kurzen Zusammenfassung:
Ich arbeite seit einigen Monaten an der Programmierung einer Multi-Agentensimulation zur Optimierung von Alarmanlagen-Positonen gegen Einbrecher. Die Simulation und die Optimierung sind bereits soweit fertig implementiert. Möchte man jedoch momentan die Simulationsparameter, so muss dies im Quellcode selbst geschehen.
Ich möchte jedoch nicht, dass die dort eingegebenen Parameter verändert werden, da sie die "default"-Werte der Simulation bilden. Dem User soll die Wahl überlassen sein, ob er mit "default"-Werten oder mit eigenen Parameter arbeiten möchte.
Die entsprechenden Parameter sind hier entweder booleans, doubles oder integer, sowie einem String.
Das Framework, mit welchem ich arbeite, bietet mir aufgrund seines eigenes Interfaces leider keine (mir bekannte) Möglichkeit eine simple Eingabe-GUI oder ein Terminal-Interface zu schreiben.
Daher möchte ich die Paramter zur Laufzeit aus einer Datei auslesen. Genau da stehe ich jetzt vor Problemen und irgendwie komme ich nach Monaten mit dem Kram nicht mehr klar.
1. Konzeptfrage: Habt Ihr einen Tipp für mich, wie ich die Datei selbst prüfen kann?
Mir geht es speziell darum, wie ich damit umgehen soll, wenn der User mit der Parameter-Datei unfug getrieben hat - z.B. versehentlich einen Zeilenumbruch entfernt und damit aus zwei Zeilen eine macht. Dies würde eine entsprechende Methode zum Einlesen natürlich vollständig zum Scheitern verurteilen
2. Konzeptfrage: Habt Ihr vielleicht eine Idee, wie ich das überhaupt verhindern kann?
Sodass der User die Datei vielleicht beim normalen Arbeiten gar nicht kaputt machen kann?
3. Wie lese ich eine Datei Zeilenweise korrekt wieder ein?
Als (vereinfachtes) Beispiel soll eine Datei in etwa so aussehen:
Dabei gibt es momentan 16 mögliche Parameter, die verändert werden können. Diese müssen zur Laufzeit korrekt eingelesen werden und natürlich die entsprechenden Werte den richtigen Variablen zugeordnet werden - leider habe ich bisher nur mit Dateiausgaben gearbeitet, wo ich einfach befehlen kann ".newLine();" und gut ist. Hier weiß ich leider nicht, wie ich gezielt auf Zeilen der Datei zugreifen kann.
Liebe Grüße
Moch
Problem in der kurzen Zusammenfassung:
Ich arbeite seit einigen Monaten an der Programmierung einer Multi-Agentensimulation zur Optimierung von Alarmanlagen-Positonen gegen Einbrecher. Die Simulation und die Optimierung sind bereits soweit fertig implementiert. Möchte man jedoch momentan die Simulationsparameter, so muss dies im Quellcode selbst geschehen.
Ich möchte jedoch nicht, dass die dort eingegebenen Parameter verändert werden, da sie die "default"-Werte der Simulation bilden. Dem User soll die Wahl überlassen sein, ob er mit "default"-Werten oder mit eigenen Parameter arbeiten möchte.
Die entsprechenden Parameter sind hier entweder booleans, doubles oder integer, sowie einem String.
Das Framework, mit welchem ich arbeite, bietet mir aufgrund seines eigenes Interfaces leider keine (mir bekannte) Möglichkeit eine simple Eingabe-GUI oder ein Terminal-Interface zu schreiben.
Daher möchte ich die Paramter zur Laufzeit aus einer Datei auslesen. Genau da stehe ich jetzt vor Problemen und irgendwie komme ich nach Monaten mit dem Kram nicht mehr klar.
1. Konzeptfrage: Habt Ihr einen Tipp für mich, wie ich die Datei selbst prüfen kann?
Mir geht es speziell darum, wie ich damit umgehen soll, wenn der User mit der Parameter-Datei unfug getrieben hat - z.B. versehentlich einen Zeilenumbruch entfernt und damit aus zwei Zeilen eine macht. Dies würde eine entsprechende Methode zum Einlesen natürlich vollständig zum Scheitern verurteilen
2. Konzeptfrage: Habt Ihr vielleicht eine Idee, wie ich das überhaupt verhindern kann?
Sodass der User die Datei vielleicht beim normalen Arbeiten gar nicht kaputt machen kann?
3. Wie lese ich eine Datei Zeilenweise korrekt wieder ein?
Als (vereinfachtes) Beispiel soll eine Datei in etwa so aussehen:
Code:
randomX=true;
randomY=false;
coordX=42;
coordY=25.4;
plan="gebaeudeplan.dat"
Dabei gibt es momentan 16 mögliche Parameter, die verändert werden können. Diese müssen zur Laufzeit korrekt eingelesen werden und natürlich die entsprechenden Werte den richtigen Variablen zugeordnet werden - leider habe ich bisher nur mit Dateiausgaben gearbeitet, wo ich einfach befehlen kann ".newLine();" und gut ist. Hier weiß ich leider nicht, wie ich gezielt auf Zeilen der Datei zugreifen kann.
Liebe Grüße
Moch