C# -BinaryReader

Alexander12

Erfahrenes Mitglied
Hi.

Gibts eigentlich beim BinaryReader so was wie "ReadLine()"? Ich muss das nämlich immer Zeilenweise in eine ArrayList einlesen.


MfG Alexander12
 

Alexander12

Erfahrenes Mitglied
Hi.

Kann Man das nicht irgendwie hinbiegen, dass er nur eine Zeile ausliest?
Ich muss das ja in ne ArrayList packen, zeilenweise..


MfG Alexander12
 
Zuletzt bearbeitet:

Alexander Schuc

crazy-weasel
Du könntest jede Zeile einzeln mittels WriteString schreiben, so bekommst mit ReadString auch immer nur die geschriebenen Zeilen.
Oder du liest den String ein, und splittest ihn dann auf.
 

Alexander12

Erfahrenes Mitglied
Hi.

Dann muss Ich ihn zweimal Splitten.
Moment, Ich erklärs:

In der Binärdatei sind in jeder Zeile 5 Wörter, duch ein Komma getrennt; Wenn Ich dann hinter jede Zeile einen solchen Strich: | oder so mache und das dann aufsplitte in einzelne Zeilen, kann Ich das in die ArrayList einlesen. Nun muss Ich die einzelnen ArrayList Objekte nochmal in diese 5 Wörter splitten.

Ich probiers am besten Mal so.


MfG Alexander12
 

Alexander Schuc

crazy-weasel
Mh?

Schreib einfach deine 5 Sachen mit dem BinaryWriter raus. Wenn du die Daten wieder haben willst, lies sie einfach wieder ein. Einfach wieder in der selben Reihenfolge. Brauchst auch keinen Delimiter.

Könnte so auf die Art aussehen:

Lesen
Code:
while (myBinReader.PeekChar() != -1)
{
  DictEntry entry = new DictEntry();
  entry.Bla = myBinReader.ReadString();
  entry.Bla2 = myBinReader.ReadString();
  entry.Bla3 = myBinReader.ReadString();
  entry.Bla4 = myBinReader.ReadString();
  entry.Bla5 = myBinReader.ReadString();

  DoSomethingWithANewEntry(entry);
}

Schreiben
Code:
myBinWriter.Write(entry.Bla);
myBinWriter.Write(entry.Bla2);
myBinWriter.Write(entry.Bla3);
myBinWriter.Write(entry.Bla4);
myBinWriter.Write(entry.Bla5);