Information

  • Informatik
  • C#
  • In-Out

Zurreal.de

Fantasy Art ~ Phantastische Kunst

Fantasy Art ~ Phantastische Kunst

Please click on 'Switch Style'.
The style of the website will change.

Bitte klicken Sie auf 'Switch Style'.
Die Gestaltung der Webseite wird sich ändern.

FileStream

using System.IO
FileStream fs = null;

try
{
  fs = new FileStream
  (@"C:\Datei.dat", FileMode.Open, FileAccess.Read);
}
catch
{
  MessageBox.Show("Die Datei kann nicht gelesen werden.");
  Application.Exit();
}

if(fs.Length == 0)
{
  MessageBox.Show("Die Datei ist leer.");
  fs.Close();
  Application.Exit();
}


/* Hier steht der StreamReader. */


sr.Close();
fs.Close();

  • FileMode
    • Append
    • Create
    • CreateNew
    • Open
    • OpenOrCreate
    • Truncate: Datei wird geöffnet und Inhalt gelöscht.
  • FileAccess
    • Read
    • Write
    • ReadWrite
fs.Length == 0
Länge ist 0.

FileStream: Dateipfad als String


FileStream fs = null;
string Pfad = "C:\Data\datei.dat";
fs = new FileStream(@Pfad, FileMode.Open, FileAccess.Read);


StreamReader

using System.IO
StreamReader sr = new StreamReader(fs);

string Datensatz;

while(sr.Peek() != -1)
{
  Datensatz = sr.ReadLine();
}

sr.Close();
sr.Peek() != -1
Das Einlesen der Datei ist noch nicht vorbei.
sr.ReadLine()
Eine Zeile wird eingelesen.

StreamReader: Substring


int Wert;

while(sr.Peek() != -1)
{
  Datensatz = sr.ReadLine();
  Wert = Convert.ToInt32(Datensatz.Substring(4, 2));
}

Substring(4, 2)
Zeichenkette: (Start, Länge)
Substring(0, 1)
Das erste Zeichen.

StreamReader: Split mit einem Array


string[] ArrayA;

while(sr.Peek() != -1)
{
  Datensatz = sr.ReadLine();
  ArrayA = Datensatz.Split(';');
}
DGV.Rows.Add(
  ArrayA[0],
  ArrayA[1],
  ArrayA[2]
  );

Split(';')
Datensatz wird beim Trennzeichen (hier: Semikolon) aufgeteilt.
Das Trennzeichen fällt weg.

StreamReader: DateTime


string[] ArrayA;
DateTime Datum;

while(sr.Peek() != -1)
{
  Datensatz = sr.ReadLine();
  ArrayA = Datensatz.Split(';');
  ArrayA[0] = ArrayA[0].Insert(2, ".");
  ArrayA[0] = ArrayA[0].Insert(5, ".");
  Datum = Convert.ToDateTime(ArrayA[0]);
}
DGV.Rows.Add(
Datum.ToString("dd. MMMM yyyy"),
ArrayA[1],
ArrayA[2]
);

Insert(2, ".")
01012000 = 01.012000
Insert(5, ".")
01.012000 = 01.01.2000
Convert.ToDateTime(Variable)
Eine Zeichenkette, z.B.: 01.01.2000,
wird explizit in ein Datum konvertiert.
("dd. MMMM yyyy")
Spezielle Formatierung des Datums.

StreamReader: Zeichenkette codieren


string Alphanumerisch = "ABCD F123";
string Wert;
int[] Codierung = new int[9];

while (sr.Peek() != -1)
{
  Alphanumerisch = sr.ReadLine();
  /*Alle Stellen durchlaufen*/
  for(int i = 0; i < 9; i++)
  {
    Wert = Alphanumerisch.Substring(i, 1);
    switch (Wert)
    {
    case "A":
    case "B": Codierung[i] = 3;
    break;
    case "C":
    case "DEFG, usw..": Codierung[i] = 5;
    break;
    /*Leerstelle*/
    case " ": Codierung[i] = 0;
    break;
    /*Nichts trifft zu: Es ist eine Zahl*/
    default: Codierung[i] = Convert.ToInt32(Wert);
    break;
    }
  }
}

Verarbeitung eines alphanumerischen Strings:
Buchstaben werden in Zahlen codiert. Zahlen
bleiben Zahlen. Leerstellen werden zu "0".


Datei speichern

using System.IO

string Datensatz;
Datensatz = txt_Eingabe.Text;

if (Datensatz.Length == 0)
{ MessageBox.Show("Datensatz ist leer."); }
else
{
  FileStream fs = null;
  fs = new FileStream(@"C:\BitteLoeschen.dat", FileMode.CreateNew);
  StreamWriter sr = new StreamWriter(fs);
  sr.Write(Datensatz);
  sr.Close();
  fs.Close();
}

Datensatz.Length == 0
ist dasselbe wie
String.IsNullOrEmpty(Datensatz)


Strings: Verarbeitung


string Datensatz;

Datensatz = Datensatz.Insert(2, ".");
Datensatz = Datensatz.Replace(" ", IntVariable.ToString());
Datensatz = Datensatz.Replace("A", "B");
IntegerVa = Convert.ToInt32(Datensatz.Substring(4, 2));
StringVar = Datensatz.Substring(4, 2);
Datensatz = Datensatz.Remove(3, 6);

Insert(2, ".")
Nach der 2ten Stelle einen Punkt einfügen.
Replace("A", "B")
Alle A's mit B's ersetzen.
Replace("A", Zahl.ToString())
Alle A's mit 'Zahl' ersetzen.
Substring(4, 2)
Eine Zeichenfolge von 2 Zeichen ab der Stelle 4 entnehmen.
Remove(3, 6)
Entfernt Zeichenfolge 3 bis 6.