Odczytanie pliku binarnego do listy

0

Witam mam listę która przechowuję osoby imię nazwisko i id. Zapisuję je do pliku binarnego w taki sposób :

 using(BinaryWriter bw = new BinaryWriter(File.Open("plikbin",FileMode.Create)))
            {
                for(int i=0;i<lista.Count;i++)
                {
                    bw.Write(lista[i].Id);
                    bw.Write(lista[i].imie);
                    bw.Write(lista[i].nazwisko);
                }
                MessageBox.Show("done", "Informacja");
            }

Z odczytaniem mam nie jako mały problem, robię to tak :

 using (BinaryReader br = new BinaryReader(File.Open(Environment.CurrentDirectory + "\\plikbin", FileMode.Open)))
            {
                for (int i = 0; i < Ilość_wprowadzonych_osób; i++)
                {
                    lista.Add(new Person(br.ReadInt32(), br.ReadString(), br.ReadString()));
                }
            }
            MessageBox.Show("Done", "Informacja");

Niestety nie wiem jak z pliku wydusić tą informację Ilość_wprowadzonych_osób, aby pętla mogła dobrze przebiec i wczytać odpowiednią ilość obiektów_osób stąd moje pytanie właśnie o to jak temu zaradzić ?

Z góry dziękuję za pomoc ;)

Pozdrawiam .

0

A nie możesz użyć xml?

2

Możesz zrobić tak:

while(br.BaseStream.Position < br.BaseStream.Length){ /* Twój kod */ }

Albo jak chcesz for to możesz tak jak w msdn :

// Create the reader using the same MemoryStream 
// as used with the writer.
BinaryReader binReader = new BinaryReader(memStream);

// Set Position to the beginning of the stream.
memStream.Position = 0;

// Read the data from memory and write it to the console.
Console.Write(binReader.ReadString());
char[] memoryData =
		new char[memStream.Length - memStream.Position];
for (i = 0; i < memoryData.Length; i++)
{
	memoryData[i] = Convert.ToChar(binReader.Read());
}
Console.WriteLine(memoryData);

Źródło: http://msdn.microsoft.com/pl-pl/library/493z3f6h(v=vs.110).aspx

0

Możesz też zrobić w swoim pliku "nagłówek" w którym umieścisz ilość rekordów w pliku

1 użytkowników online, w tym zalogowanych: 0, gości: 1