methoden-aufruf
Christoph
- java
hallo leute,
habe folgendes problem:
ein angemeldeter kunde bekommt seine stammdaten aus der datembank, was auch funktioniert.
meldet sich nun jeman mit der gast-kennung an, so bekommt dieser dummy-daten; das erledigt eine eigene klasse.
nun zu meinem problem:
konstruktion stammdaten:
Stammdaten std1=new Stammdaten("100100","MusterWerk 1","MW 1","Mustersrt. 1","66525 Musterbach","Deutschland","100100","Kältetechnik","Deutsch","000111222","000111223");
Nun will ich aber diese daten nicht in der klasse hard-codieren, sonder aus einer property-datei auslesen, damit bei einer späteren änderung dieser daten nur das programm neu gestartet werden und nicht neu compiliert werden muss.
kann ich nun eine string aus der property datei lesen der folgendermassen aussieht: ""100100","MusterWerk 1","MW 1","Mustersrt. 1","66525 Musterbach","Deutschland","100100","Kältetechnik","Deutsch","000111222","000111223""
und mittels des INHALTES dieses strings die stammdaten erzeugen, ohne mit string-tokenizer zu abeiten, oder jedes einzelne attribut aus der datei zu lesen?
danke schonmal
christoph
Hallo Christoph,
kann ich nun eine string aus der property datei lesen der folgendermassen aussieht: ""100100","MusterWerk 1","MW 1","Mustersrt. 1","66525 Musterbach","Deutschland","100100","Kältetechnik","Deutsch","000111222","000111223""
und mittels des INHALTES dieses strings die stammdaten erzeugen, ohne mit string-tokenizer zu abeiten, oder jedes einzelne attribut aus der datei zu lesen?
Du könntest natürlich eine Schleife schreiben, die den String zeichenweise durchgeht und sobald es die Zeichenfolge "," findet, vor der kein Backslash steht, den nächsten Platz eines Arrays "parameter" mit dem davor befindlichen Text belegt. Dann kannst du ein Stammdaten-Objekt so erzeugen:
Stammdaten std1 = new Stammdaten(parameter[0],parameter[1],parameter[2],...);
Aber wenn ich dich richtig verstanden habe, willst du wissen, ob es etwas gibt wie
String a = ""100100","MusterWerk 1","MW 1","Mustersrt. 1","66525 Musterbach","Deutschland","100100","Kältetechnik","Deutsch","000111222","000111223"";
Stammdaten std1 = new Stammdaten(a);
oder
Stammdaten std1 = eval("new Stammdaten(" + a + ")");
Soetwas gibt es in Java *nicht*, da Java kompiliert wird. Am einfachsten ist es wohl, wenn du die Datei so aufbaust:
properties.txt:
100100
MusterWerk 1
MW 2
Mustersrt. 1
66525 Musterbach
Deutschland
100100
Kältetechnik
Deutsch
000111222
000111223
200200
MusterWerk 2
MW 2
Mustersrt. 2
66525 Musterbach
Deutschland
200200
Kältetechnik
Deutsch
000222444
000222334
[...]
Und dann eine Schleife baust:
String[] parameter = new String[11];
while (! dateiZuendegelesen) {
for (int i=0; i<11; i++)
parameter[i] = NächsteZeileDerDatei;
Stammdaten std1 = new Stammdaten(
parameter[0],
parameter[1],
parameter[2],
parameter[3],
parameter[4],
parameter[5],
parameter[6],
parameter[7],
parameter[8],
parameter[9],
parameter[10]
);
}
Das ist allerdings schwer erweiterungsfähig, d.h. wenn die Klasse Stammdaten später einmal mehr Eigenschaften haben soll, wird es schwierig, das ganze umzustellen. Wenn du also "zukunftsorientiert" Programmieren willst, müsstest du die Datei so aufbauen:
properties.txt:
parameter1=wert1
parameter2=wert2
parameter3=wert3
--
parameter1=wert1
parameter2=wert2
parameter3=wert3
--
parameter1=wert1
parameter2=wert2
parameter3=wert3
Dann wird das Auslesen aber um einiges aufwändiger.
Viel Erfolg,
Robert