String Split

  • VB6

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von alchimist.

    Hallo Ihr VB-Profis!

    Hier mein Problem:
    Ich habe einen String der aus einem Dateinamen besteht und ich möchte die Dateiendung wegnehmen.
    z.B vorher: String = 153.555.01.doc ; danach: String = 153.555.01

    das Problem ist, dass ich es nicht einfach mit Split(String, ".") machen kann da der Dateiname schon aus Punkte besteht.

    HELP!!!

    PS: Ich hoffe ich hab mich klar ausgedrückt
    dim i as integer
    dim dateiname as string
    dim ergebnis as string
    ergebnis=vbnullstring
    dateiname="153.555.01.doc"
    for i=len(dateiname) to 1 step -1
    if mid$(dateiname,i,1)="." then
    ergebnis = mid$(dateiname,1,len(dateiname)-i-1)
    exit for
    end if
    next i
    msgbox ergebnis
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum
    Ich bin zwar nicht franky aber, ja die 4 bedeutet, 4. stelle von rechts. Hier die erklärung für die Right$ und Left$ Funktionen

    Right$
    Gibt einen Wert vom Typ Variant (String) zurück, der eine bestimmte Anzahl von Zeichen von der rechten Seite (dem Ende) einer Zeichenfolge enthält.

    Syntax

    Right$(string, length)


    Left$
    Gibt einen Wert vom Typ Variant (String) zurück, der eine bestimmte Anzahl von Zeichen ab dem ersten (linken) Zeichen einer Zeichenfolge enthält.

    Syntax

    Left$(string, length)

    franky schrieb am 05.09.2003 13:05
    @marcus: dein i ist zu gross (=11, sollte aber nur 3 sein) dadurch wird als ergebnis nur 15 ausgegeben...


    Naja, ich habe den Code in 2 Minuten ohne VB geschrieben, da darf einem ruhig ein Fehler unterlaufen.

    franky schrieb am 05.09.2003 13:05
    es funktioniert aber auch so:
    ergebnis = Right$(dateiname, 4)


    Das funktioniert aber nicht bei "test.html" oder "test.myfileext".

    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum
    Hallo,

    mir ist nicht ganz klar, warum hier so viel Schleifen auftauchen, warum nicht einfach so:

    Public Function FileTitleFromName(fl As String) As String
    On Error Resume Next
    FileTitleFromName = Left$(fl, InStrRev(fl, ".") - 1)
    End Function

    Sorry aber das On Error musste sein, kann ja ein Paddel einen Dateinamen ohne Endung übergeben

    Gruß Markus
    Ups, 9 Uhr morgens die Augen kaum offen, da kann einem so was mal passieren, sry, Markus, total vergessen, dass es die Funktion auch gibt
    aber vielleicht tortzdem eine überprüfung durchführen ob der . existiert, On Error Resume Next is so ne hässliche methode ...

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Unknown“ ()

    Hallo Unknown,

    klar ist das eine 'wie-entkomme-ich-einem-Fehler'-Zeile , aber ich hatte bemerkt, dass meine Funktion nicht so toll auf eine Eingabe ohne Punkt reagiert, deshalb war das die schnellste (=faulste) Methode.

    Das ganze sollte hauptsächlich zeigen, dass ich dieses Problem eben auch ohne Schleife lösen kann.

    Gruß Markus