readline() nur wenn bestimmte char in line vorkommen

mashine-obf

Mitglied
kann mir bitte jemand weiter helfen habe keine ahnung!
will eine zeile aus einer datei nur auslesen wenn bestimmte char in der zeile vorhanden ist zb. "81.."

bitte bitte hab bestimmt schon 4 stunden mit www help verbracht

vielen dank im vorraus
 

Norbert Eder

Erfahrenes Mitglied
Die liest das File einfach Zeile für Zeile aus (TextReader) mit ReadLine.

Ist das Vorkommen der Zeichen am Anfang der Zeile? Wenn ja, dann kannst du mit
Code:
if meinEingelesenerString.StartsWith("81") then
   'an das Eingelesene anhängen
else
   'sonst verwerfen
end if

Befindet sich das Vorkommen am Ende hat String die Methode EndsWidth. In der Mitte kannst mit IndexOf("...") das erste Vorkommen zurückgeben lassen und erfährst so, ob es ein Vorkommen überhaupt gibt.
 

mashine-obf

Mitglied
vielen dank erstmal
mit indexof unde lastindexof hab ich ach schon gearbeitet aber will nicht so wie ich will.
gibt es eine methode die mir den index des 2,3,usw vorkommenden char ausgibt oder ausliest?

gibt mir indexof() -1 wieder wenn char in line nicht existiert?

wenn ja müsste es ja so gehen oder ?

if indexof() > -1 then
readline()
end if

MFG marco
 
Zuletzt bearbeitet:

mashine-obf

Mitglied
danke nochmal aber,
jetzt hab ich folgendes Problem ich möchte Koordinaten aus einer Datei auslesen, ich möchte aber nur die Zeilen auslesen, die mit dem char "81.." gekennzeichnet sind
es funktioniert alles sehr gut, wenn ich die darauf folgende Zeile haben wollte.

ich hab z.B. die *.gsi Datei mit folgenden text

hallo...
... 81.. x..y..z..
test
... 81.. x..y..z..
test
... 81.. x..y..z..
ende Absteckung

meine Ausgabe ist jetzt aber:
test
test
ende Absteckung

und nicht wie ich es brauche:
... 81.. x..y..z..
... 81.. x..y..z..
... 81.. x..y..z..

hast du dafür auch noch ein tip

mfg marco sommerfeld

Code:
  Dim reader As StreamReader = File.OpenText(datname)
          While (reader.Peek() > -1)
              If reader.ReadLine.IndexOf("81..") >= 0 Then
                  TextBox1.Text += reader.ReadLine() + Environment.NewLine
              End If
          End While
          reader.Close()
 

Norbert Eder

Erfahrenes Mitglied
Code:
 Dim tempString as String
 Dim reader As StreamReader = File.OpenText(datname)
          While (reader.Peek() > -1)
              tempString = reader.ReadLine()
              If tempString.IndexOf("81..") >= 0 Then
                  TextBox1.Text += tempString + Environment.NewLine
              End If
          End While
          reader.Close()
ReadLine() liest jedes mal eine neue Zeile aus.