Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C++CLI / VB .Net / .Net-Framework » Newbe Fragen Visual C# 2005

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
29.03.2006, 19:12 Uhr
~fasmat
Gast


Ich hab ne Frage zu Visual C#. Bin neu auf dem Gebiet, hab aber vorher schon C gecodet.
Naja ich hab eine binärdatei Datei in der mehrere DWORDS gespeichert sind. In C(++) hätte ich das mit einem typdef definiert:


C++:
typdef struct
{
  double int dummy1;
  double int dummy2;
  double int noch_ein_dword;
  double int ok_genug;
} CACHE;

CACHE tmp;



meine 1. Frage: wie definiere ich so etwas in C#?
meine 2. Frage: für C(++) hätte ich fopen, etc. genutzt um datei auszulesen. Wie mache ich das in C#? Kann jemand ein Code-Beispiel für das auslesen und speichern der ersten 4 dwords einer Datei "Datei.abc" posten?

Hoffe hier gibts C# Pros

Dieser Post wurde am 29.03.2006 um 19:14 Uhr von fasmat editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
30.03.2006, 08:50 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo,
da gibt es verschiedene Möglichkeiten typisierte Daten zu schreiben/lesen.

C++:
private struct CACHE{
      public Int32 dummy1;
       public Int32 dummy2;
       public Int32 noch_ein_Ddword;
       public Int32 ok_genug;
}
      
private const int max = 4;
private CACHE[] tmp = new CACHE[max];
private string pfad ="cache.dat";

private void Form1_Load(object sender, System.EventArgs e)
{
      int counter = 100;
      for(int i=0; i < max; i++)
      {
                tmp[i].dummy1 = counter;
                counter++;
                tmp[i].dummy2 = counter;
                counter++;
                tmp[i].noch_ein_Ddword = counter;
                counter++;
                tmp[i].ok_genug = counter;
                counter++;
       }
}

private void btnWrite_Click(object sender, System.EventArgs e)
{
     writeFile();
}

private void writeFile()
{
     FileStream wStream = new FileStream(pfad,FileMode.OpenOrCreate,FileAccess.Write);
     BinaryWriter bWriter = new BinaryWriter(wStream);
     for(int i=0; i < max; i++)
      {
          bWriter.Write(tmp[i].dummy1);
          bWriter.Write(tmp[i].dummy2);
          bWriter.Write(tmp[i].noch_ein_Ddword);
          bWriter.Write(tmp[i].ok_genug);
      }
       bWriter.Flush();
       bWriter.Close();
       wStream.Close();
}

private void btnRead_Click(object sender, System.EventArgs e)
{
     for(int i =0; i < max; i++)
      {
          tmp[i].dummy1 = 0;
          tmp[i].dummy2 = 0;
          tmp[i].noch_ein_Ddword = 0;
          tmp[i].ok_genug = 0;
      }
       readFile();
}

private void readFile()
{
      FileStream rStream = new FileStream(pfad,FileMode.OpenOrCreate,FileAccess.Read);
      BinaryReader bReader = new BinaryReader(rStream);
      for (int i=0; i < max; i++)
      {
          tmp[i].dummy1 = bReader.ReadInt32();
          tmp[i].dummy2 = bReader.ReadInt32();
          tmp[i].noch_ein_Ddword = bReader.ReadInt32();
          tmp[i].ok_genug = bReader.ReadInt32();
      }
       bReader.Close();
       rStream.Close();
}


--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
30.03.2006, 10:47 Uhr
~fasmat
Gast


Danke
Das hat mir sehr geholfen
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C++CLI / VB .Net / .Net-Framework ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: