Autor Beitrag
acer5672
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 27



BeitragVerfasst: Do 10.04.08 16:26 
Hi ich hab folgendes Problem ich möchte aus einem text den ich mit der file methode geschrieben die Kommentare löschen lassen.
Der Lehrer meinte versuchs mit der methode Contains aber so ganz blick ich da nicht durch,
deswegen frage ich euch.
Bitte um Hilfe !!!


Danke im Voraus:)
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Do 10.04.08 17:00 
Nun ja, Kommentare kann man selten zuviel haben. Aber wenn Du sie unbedingt weghaben willst...

Ich würde so vorgehen:
  • Datei einlesen mit File.ReadAllLines
  • eine leere List<string> erzeugen
  • alle Strings durchgehen und prüfen:
  • wenn die Zeile "///" enthält, dann den Anfang der Zeile per Substring in die neue Liste
    kopieren; aber wenn am Anfang nur '\t' und Leerzeichen übrig bleiben, braucht nichts mehr kopiert zu werden
  • wenn die Zeile "//" enthält, dann ebenso verfahren; aber solche Zeilen dürften meistens noch Inhalt haben
  • alle anderen Zeilen werden direkt kopiert
  • aus der Liste wird ein String-Array erzeugt
  • dies wird mit File.WriteAllLines gespeichert

Dieses Verfahren mit List<> dürfte schneller gehen, als wenn in einem Array Zeilen geändert und gelöscht werden.

Mit "Contains" meinte der Lehrer wahrscheinlich das, was ich mit "wenn ... enthält" meinte; aber dafür dürfte IndexOf besser geeignet sein.

Jürgen

Fehlerkorrektur: Zuerst muss nach "///" gesucht werden, erst danach nach "//".


Zuletzt bearbeitet von JüTho am Do 10.04.08 18:02, insgesamt 2-mal bearbeitet
acer5672 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 27



BeitragVerfasst: Do 10.04.08 17:19 
Danke für die schnelle antwort

aber ich hab jetzt die // gefunden und in die liste kopiert die sind doch immer noch im anderen text oder ?
Das hab ich nicht ganz so verstanden ^^
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Do 10.04.08 17:59 
Mein Gedanke ging so: ReadAllLines schreibt die Datei in ein String-Array, das als Quelle dient und sozusagen read-only sein soll. Die List<> ist das Ziel und erhält alle Zeilen bzw. Substrings, die behalten werden sollen. Diese Ziel-Liste wird (auf dem Umweg über ein weiteres String-Array) in die Zieldatei geschrieben.

Die Quell-Liste bleibt dabei natürlich unverändert. Du kannst sie z.B. als bak-Datei speichern.

Jürgen