Hot News:

Unser Angebot:

  Foren auf CAD.de
  VBasic / vb.net / vbs / wsh
  Problem mit StartsWith()

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Online-Kurs: Grundlagen des 3D-Druck-Designs für Industrieingenieure , ein Kurs
Autor Thema:  Problem mit StartsWith() (1532 mal gelesen)
Mustaine
Ehrenmitglied V.I.P. h.c.



Sehen Sie sich das Profil von Mustaine an!   Senden Sie eine Private Message an Mustaine  Schreiben Sie einen Gästebucheintrag für Mustaine

Beiträge: 3585
Registriert: 04.08.2005

erstellt am: 02. Jul. 2007 09:40    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

ich möchte jede Zeile eine Textdatei nach einem Zeilenanfang durchsuchen und wenn es ihn gibt, soll etwas bestimmtes gemacht werden.

Ich habe also eine txt-Datei mit so einem Inhalt:

Code:

**
*Step, name=name1
**
*Step, name=name2
**
** *Step
**

Ich lese die gesamte Datei ein, lege sie unter dem String "daten" ab und splitte die Zeilen in den String-Array "zeilen". Danach möchte ich alle Array-Einträge in einer Schleife bzgl. ihres Anfangs überprüfen.

Code:

Dim daten, zeilen(), stepzeile() As String
Dim i As Integer

zeilen = daten.Split(vbCr)

For i = 0 To zeilen.Length - 1
            If zeilen(i).StartsWith("*Step") Then
                stepzeile = (zeilen(i).Split(","))
                MsgBox(stepzeile(1))
            End If
Next


Leider klappt das aus irgendeinem Grund nicht und ich weiß nicht warum. Eigentlich erwarte ich jeweils eine MsgBox mit "name=namex" (x ist Nummer).

Kann ich die jeweiligen Array-Felder nicht mit StartsWith() kontrollieren oder könnte es an dem * (wildcard) bei *Step liegen? Ich habe schon zeilen(i).StartsWith(Chr(42) & "Step") probiert, aber das klappt auch nicht.

Wenn ich in der If-Schleife als Kontrolle InStr(zeilen(i), "*Step") verwende klappt es. Das möchte ich aber nicht nutzen, da dann ja auch die vorletzte Zeile verwendet wird, was ich aber nicht möchte.

Ich arbeite übrigens mit Visual Basic Express 2005.
Vielen Dank im Voraus für die Hilfe.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Axel.Strasser
Ehrenmitglied V.I.P. h.c.
Selbstständig im Bereich PLM/CAx



Sehen Sie sich das Profil von Axel.Strasser an!   Senden Sie eine Private Message an Axel.Strasser  Schreiben Sie einen Gästebucheintrag für Axel.Strasser

Beiträge: 4107
Registriert: 12.03.2001

Früher war vieles gut, und das wäre es heute immer noch, wenn man die Finger davon gelassen hätte!

erstellt am: 02. Jul. 2007 09:48    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Mustaine 10 Unities + Antwort hilfreich

Versuche es doch mal mit InStr(zeilen(i), "Step,")   

alternativ in vbs (sollte aber in vb analog gehen) würde ich noch nehmen:

if Instr(2, zeilen(i), "Step") = 2 then

Axel

[Diese Nachricht wurde von Axel.Strasser am 02. Jul. 2007 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

tbd
Moderator
Teamleiter


Sehen Sie sich das Profil von tbd an!   Senden Sie eine Private Message an tbd  Schreiben Sie einen Gästebucheintrag für tbd

Beiträge: 825
Registriert: 26.01.2006

Dell Percision T5400
Intel(R) Xeon(R) CPU
X5460 @ 3.16GHz
3,25 GB RAM
Nvidia Quadro FX 4600

erstellt am: 02. Jul. 2007 10:13    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Mustaine 10 Unities + Antwort hilfreich

Hallo Mustaine,

ich habe jetzt keine Idee warum es bei dir nicht klappt.
Ich habe mal deine Textdatei Zeilenweise ausgelesen, da klappt es!

Code:

Dim sDateiPfad As String = "C:\Test.txt"
Dim oStream As New System.IO.StreamReader(sDateiPfad)
Dim sZeilenArray() As String
'Bis zum Zeilenende lesen
Do While oStream.Peek() <> -1
  Dim sZeile As String = oStream.ReadLine()
  If sZeile.StartsWith("*Step") Then
      sZeilenArray = sZeile.Split(CChar(","))
      MsgBox(sZeilenArray(1))
  End If
Loop
oStream.Close()

Ich kann mir nicht vorstellen das es an dem Array liegt, aber wie gesagt, warum weis ich nicht?
Ich hoffe jedoch das dieser Codeschnipsel dir weiter hilft!

------------------
Mfg Daniel

Wer A sagt, der muss nicht B sagen. Er kann auch erkennen, dass A falsch war. Bertolt Brecht
------------------
SolidWorks | API | Makro | Schulung | Freeware | Schuler Design Automation GmbH

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Mustaine
Ehrenmitglied V.I.P. h.c.



Sehen Sie sich das Profil von Mustaine an!   Senden Sie eine Private Message an Mustaine  Schreiben Sie einen Gästebucheintrag für Mustaine

Beiträge: 3585
Registriert: 04.08.2005

erstellt am: 02. Jul. 2007 16:07    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


Vielen Dank für die Tipps. Ich werde sie demnächst mal testen.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2025 CAD.de | Impressum | Datenschutz