Laden...

Hab schon wieder probleme (please help)

Erstellt von Ayke vor 17 Jahren Letzter Beitrag vor 17 Jahren 1.178 Views
Ayke Themenstarter:in
643 Beiträge seit 2006
vor 17 Jahren
Hab schon wieder probleme (please help)

Also ich hab folgendes Problem : Ich möchte eine Anwendung schrieben die aus einer Textdatei die wie Folgt aussieht :

Arm
Buch
Cannal
Fach
Code
Web
Infra
Bilder
mehr
Option
unsw............

immer 3 Wörter raus nimmt und in eine andre Textdatei schreibt. Von Oben nach Unten da ich zwischen den Wörtern immer die gleichen andren befehle für eine script sprache einsetzten muss .

Mein Code ist nicht vollständig da ich nicht weiss wie ich den Rest in die tat umsetzen muss. Kann mir jemand Helfen ? (Die Zeilen länge kann ich nie sagen weil das immer andre Textdatein mit verschieden vielen Wörtern sind die ich sozusagen umwandeln möchte).

            FileStream f = new FileStream(path,
		    FileMode.Open);
        try
        {
            StreamReader t = new StreamReader(f);
            string    line;
            while ((line = t.ReadLine()) != null)


            if (x == 1 )
            {
                erste = line;
            }

            if (y == 2)
            {
                zweite = line;
            }

            if (z == 3)
            {
                dritte = line;
            }

            x++;

            f.Close();
            
        }

        finally
        {
            f.Close();   
        }
Ayke Themenstarter:in
643 Beiträge seit 2006
vor 17 Jahren

meine frage lautet eher wie kann ich sagen welche line geladen werden soll dan kann ich den wert als eine variable machen(das wäre sehr hilfreich da ich fast immer das gleiche problem hab) oder könnte mir jemand vielleicht ein code zeigen.

L
497 Beiträge seit 2006
vor 17 Jahren

x = 0;

while ((line = t.ReadLine()) != null) { <-- Hier fehlte die Klammer
  switch (x % 3) {
    case 0:
       erste = line;
       break;
    case 1:
       zweite = line;
       break;
    case 2:
       dritte = line;
       // hier hast du alle drei zeilen gelesen, also etwas damit machen
       break;
  }
  ++x;
  <-- Hier den FileStream nicht schließen, wenn Du noch weiterlesen willst! Schließen nur außerhalb von while!
}

Cooler wäre das Arbeiten mit einem Array:


String[] lines = {"", "", ""};
int x = 0;
while ((lines[x] = t.ReadLine()) != null) {
  if (x == 2) {
    // hier hast du alle drei zeilen gelesen. Sie stehen in lines[0], lines[1] und lines[2]
  }
  x = (x+1) % 3;
}

Das Wichtigste bei beiden Variante ist die Modulo-Rechnung mit %

Sarkusmus ist, wenn nichts mehr hilft, außer Lachen.

Ayke Themenstarter:in
643 Beiträge seit 2006
vor 17 Jahren

Danke Dake 😁

4.221 Beiträge seit 2005
vor 17 Jahren

Bitte wähle das nächste mal einen sinnvolleren Titel !

Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...