Announcement

Collapse
No announcement yet.

Textdateien

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Textdateien

    Hallo an alle,

    ich habe ein Problem welches mich zur Verzweiflung treibt, ich bin Anfänger mit Visual Studio 2005 und möchte verschieden Textdateien per ODBC weiter verarbeiten nun nun ist das Problem das ich verschiedene Trennzeichen (",",":" etc) habe wie kann ich nun dieser alle vereinheiltlichen das ich die bestehenden Zeichen der Textdateien auslesen kann und diese austauschen gegen ein Standardtrennzeichen ; ich bin für jede Hilfe Dankbar.

    Wünsche allen ein restliches schönes WE

    Michael Peter

  • #2
    Hey,
    keine ahnung ob ich das jetzt so richtig verstanden habe aber würde dir nicht ganz einfach .Replace() helfen?

    Comment


    • #3
      Replace

      Hallo,

      das Problem ist das ich noch sehr neu bin mit Visual Studio und zur Zeit nicht weiß wie ich das per Streamreader und Writer realisieren muß ich würde mich freuen wenn ich mal einen Ansatzpunkt bekommen könnte wie ich sowas Programmieren muß.

      Bis denne

      Michael Peter

      Comment


      • #4
        Hallo,

        Hinweis: Meine Vorschläge beziehen sich auf NET 2.0.

        Zum Einlesen der Textdatei ist folgendes Verfahren möglich:
        Code:
        string inhalt = File.ReadAllText("C:\\Temp\\Quelldatei.csv");
        Zum Trennen gilt (auch unter NET 1.1); damit können alle möglichen Trenner auf einmal berücksichtigt werden:
        Code:
        string[] inhaltsteile = inhalt.Split(new char[] {',', ';', ':'});
        Je nach Situation kann das Split auch auf ein Zeichen beschränkt werden, muss aber mit char[] arbeiten. Vielleicht ist vorher auch ein Replace sinnvoll:
        Code:
        char[] trenner = new char[] {',', ':'};
        foreach(char c in trenner) {
            inhalt = inhalt.Replace(c, ';');
        }
        Dir ist hoffentlich klar, dass so etwas nur funktioniert, wenn ein Trenner nicht Bestandteil eines Inhaltsteils ist. Andernfalls muss noch mit Gänsefüßchen als Begrenzer gearbeitet werden; aber die Abläufe ändern sich nicht grundsätzlich.

        Danach können die Feldinhalte an ein DataTable übergeben werden und per DataAdapter in die Datenbank übertragen werden.

        Alternativ kann auch jeder Inhaltsteil direkt an einen Parameter eines DbCommand übergeben werden (ohne DataTable und DataAdapter) und gespeichert werden.

        Ich vermute, die Reihenfolge der o.g. Abläufe musst Du noch anpassen:
        1. Datei komplett einlesen
        2. in einer foreach-Schleife jede Zeile einzeln bearbeiten
        3. jede Zeile mit Replace und Split behandeln
        4. dabei die Feldinhalte übertragen und
        5. sofort per DbCommand.ExecuteNonQuery speichern

        Die Punkte 4 und 5 behandeln ein neues Thema (da solltest Du unter ADO.NET fündig werden); das lasse ich jetzt erst einmal weg.

        Viel Erfolg! Jürgen

        Comment

        Working...
        X