Hallo,
der unten stehende Code bereitet mir ein Problem: Zwar werden die Adressdaten aus einem Textfile korrekt ausgelesen und auch richtig in einer Variablen vom Typ adr_t abgelegt. Aber nachdem ich diese unterschiedlichen Adressen in die Adressliste via Add eingefügt habe steht zwar die richtige Anzahl an Datensätzen drin, aber n mal der zuletzt eingelesene. Weis jemand Rat ? Bin für jeden Tip dankbar.
Im Voraus vielen Dank.
Gruß
Horst
class adr_t {
private const int parts = 4;
private string[] Adresse = new string[parts];
public static int Parts { get { return parts; } }
// Indexer
public string this[int i] {
get { return Adresse[i]; }
set { Adresse[i] = value; }
}
}
}
class Adressen {
private List<adr_t> AdrList = new List<adr_t>();
public Adressen(string fn) {
try {
string[] split = new string[adr_t.Parts];
adr_t a = new adr_t();
string line;
using (StreamReader sr = new StreamReader(fn)) {
while ((line = sr.ReadLine()) != null) {
// faengt Leerzeilen ab, AdrParts -1 Delimiter sind möglich
if (line.Length > adr_t.Parts - 1) {
split = line.Split(';');
for (int i=0; i<adr_t.Parts; i++) { a[i] = split[i]; }
} // if
AdrList.Add(a);
} // while
} // using
} catch (Exception ex) {
...
} // try ... catch
} // constructor Adressen
...
public void Add(adr_t a) { AdrList.Add(a); }
public adr_t this[int i] { get { return AdrList[i]; } }
...
}
}
der unten stehende Code bereitet mir ein Problem: Zwar werden die Adressdaten aus einem Textfile korrekt ausgelesen und auch richtig in einer Variablen vom Typ adr_t abgelegt. Aber nachdem ich diese unterschiedlichen Adressen in die Adressliste via Add eingefügt habe steht zwar die richtige Anzahl an Datensätzen drin, aber n mal der zuletzt eingelesene. Weis jemand Rat ? Bin für jeden Tip dankbar.
Im Voraus vielen Dank.
Gruß
Horst
class adr_t {
private const int parts = 4;
private string[] Adresse = new string[parts];
public static int Parts { get { return parts; } }
// Indexer
public string this[int i] {
get { return Adresse[i]; }
set { Adresse[i] = value; }
}
}
}
class Adressen {
private List<adr_t> AdrList = new List<adr_t>();
public Adressen(string fn) {
try {
string[] split = new string[adr_t.Parts];
adr_t a = new adr_t();
string line;
using (StreamReader sr = new StreamReader(fn)) {
while ((line = sr.ReadLine()) != null) {
// faengt Leerzeilen ab, AdrParts -1 Delimiter sind möglich
if (line.Length > adr_t.Parts - 1) {
split = line.Split(';');
for (int i=0; i<adr_t.Parts; i++) { a[i] = split[i]; }
} // if
AdrList.Add(a);
} // while
} // using
} catch (Exception ex) {
...
} // try ... catch
} // constructor Adressen
...
public void Add(adr_t a) { AdrList.Add(a); }
public adr_t this[int i] { get { return AdrList[i]; } }
...
}
}
Comment