Robert Bamler: methoden-aufruf

Beitrag lesen

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