none
Zeilen aus einer Textdatei löschen RRS feed

  • Frage

  • Hallo Zusammen,

    ich versuche zur Zeit folgendes:
    ich möchte ein kleines Programm schreiben, welches mir Textdateien verkleinert. Dazu habe ich eine kleine GUI mittels Windows Forms erstellt. Datei auswählen habe ich bereits geschafft. In einer Textbox wird angegeben, die wievielte Zeile jeweils gelöscht werden soll. Diese Zahl wird an eine Variable übergeben. Nun möchte ich die Textdatei öffnen und jede z.B. 30. Zeile (in der Variablen angegeben) löschen.

    Mit einem FolderBrowseDialog habe ich den Speicherort festgelegt und in eine Textbox geschrieben. Nun soll er den Namen der originaldatei nehmen, ein "shriked" hinten dran hängen (aber noch vor der .txt-Endung, soll also so aussehen: originaldatei srinked.txt) und in eben diesem ausgewählten Ordner speichern.

    Wie kann ich das machen? Ich bin noch sehr neu bei C# und sowieso in der der Programmiererei. :-)
    Ich würde mich freuen, wenn ihr mir ein gut dokumentiertes Codebeispiel geben könnt, dann kann ich daraus lernen, was der Code genau macht.

    Vielen Dank für jede Info schon mal im Voraus!

    mfg
    tyradux

    Montag, 18. Oktober 2010 09:51

Antworten

  • Hi,

     

    ich empfehle jedem Einsteiger das Galileo Openbook

    Bei dir Speziell das Kapitel http://openbook.galileocomputing.de/visual_csharp_2010/visual_csharp_2010_12_001.htm#mj8d588fd12b4c95e237921853a162fae3

    Willst du die Datei umbennen oder eine neu mit dem Namen "textshriked.txt" anlegen ?

    Erstes kannst du mit System.IO.File.Move , zweites mit File.Copy

    Jede 30.Zeile löschen ?

    Würde ich wie folgt vorgehen (achtung ungetestet da vom Handy gschrieben)

     

    using (var sr = new StreamReader(sPath, Encoding.GetEncoding("ISO-8859-1"))) 
      {
       List<string> _lines = new List<string>();
    int iLineCount = 1;
       while (!sr.EndOfStream)
       {
       if(iLineCount %30 != 0)
        _lines.Add(sr.ReadLine());
        iLineCount++;
       }
       
      }

    Sobald du dann alle in der Liste hast, kannst du die Liste zurück in die Datei schreiben

    Grüße

     

    Montag, 18. Oktober 2010 09:53