none
Trennzeichen bei Split aus DB RRS feed

  • Frage

  • Hi Forum,

    ich möchte eine txt Datei mit Split "zerlegen". Allerdings sind die Vorgaben in einer SQL DB gespeichert. Der Pfad, das Trennzeichen und die Encoding erweiterung.

    Nun habe ich ein Problem beim Zerlegen der txt Zeile.

    Ich lade die Vorgaben in ein Datatable aus der ich dann die Vorgaben verwenden möchte.

    Der Code :

    string line; 
    char[] trenner = { ';' }; 
    label6.Text = tabel.Rows[0]["txtTrennZei"].ToString();
    System.IO.StreamReader file = new System.IO.StreamReader(tabel.Rows[0]["Quelle"].ToString(), System.Text.Encoding.UTF7);

    ....

    wie kann ich >>

    tabel.Rows[0]["txtTrennZei"].ToString();

     << dem

    char[] trenner = { ';' };

    zuweisen ?

    und wie kann ich beim Streamreader das UTF7 durch >>

    tabel.Rows[0]["EncodeType"].xxxx

      << ersetzen

    Gruß Roland

    Mittwoch, 21. Juli 2010 07:20

Antworten

  • Hallo Roland,

    da Datenbanken im allgemeinen Zeichenketten - der DataColumn.DataType ist String)
    und kein einzelnes Char liefern, wäre das erledigt mit:

    char[] trenner = new char[] { ((string)tabel.Rows[0]["txtTrennZei"])[0] };
    

    Übersichtlicher für den Anfang wird es, wenn man es aufdröselt:

          DataRow row = tabel.Rows[0];
          string trennZeichen = (string)row["txtTrennZei"];
          char[] trenner = new char[] { trennZeichen[0] };
    
    

    Im übrigen ist Encoding.UTF7 mit sehr hoher Wahrscheinlichkeit verkehrt,
    da es weder von .NET noch von Windows im Standard verwendet wird.

    Wie schon im anderen Thread von Thorsten genannt, wird die Windows-Kodierung
    (ANSI => 8 Bit) mit Encoding.Default und gilt in den vielen Fällen,
    wo die Datei durch ein älteres Windows Programm geschrieben bzw. gelesen wird.

    Gruß Elmar

    Mittwoch, 21. Juli 2010 09:02

Alle Antworten

  • Hallo Roland,

    da Datenbanken im allgemeinen Zeichenketten - der DataColumn.DataType ist String)
    und kein einzelnes Char liefern, wäre das erledigt mit:

    char[] trenner = new char[] { ((string)tabel.Rows[0]["txtTrennZei"])[0] };
    

    Übersichtlicher für den Anfang wird es, wenn man es aufdröselt:

          DataRow row = tabel.Rows[0];
          string trennZeichen = (string)row["txtTrennZei"];
          char[] trenner = new char[] { trennZeichen[0] };
    
    

    Im übrigen ist Encoding.UTF7 mit sehr hoher Wahrscheinlichkeit verkehrt,
    da es weder von .NET noch von Windows im Standard verwendet wird.

    Wie schon im anderen Thread von Thorsten genannt, wird die Windows-Kodierung
    (ANSI => 8 Bit) mit Encoding.Default und gilt in den vielen Fällen,
    wo die Datei durch ein älteres Windows Programm geschrieben bzw. gelesen wird.

    Gruß Elmar

    Mittwoch, 21. Juli 2010 09:02
  • Hallo,

    Ich gehe davon aus, dass die Antwort Dir weitergeholfen hat.
    Solltest Du noch "Rückfragen" dazu haben, so gib uns bitte Bescheid.

    Grüße,
    Robert

    Dienstag, 27. Juli 2010 11:30