Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo alle zusammen,

ich speichere in einer variable folgenden string : \\sntko4\gte\gtewrk\hsd-cd\S513792-1.jpg.

Meine frage ist wie kann ich den string so formatieren das in der variable nach her nur der reine Dateinane steht? in diesem Fall z.b. S513792-1.jpg.

Der Dateiname ist manchmal unterschiedlich lang, also hat mir "Right" hier nicht weitergeholfen.

Hat da jemand ein tip für mich?

Danke im vorraus!

p.s. arbeite mit VBA unter Access 97

Grüße

2daBeat

Geschrieben

du könntest die Funktion Split nutzen um dir eine Array zuerstellen und dann den letzten Eintrag einfach rausholen aus diesem Array. am besten in eine Funktion packen, der Du den Pfad übergibst

Guido

Geschrieben

dim i as integer, j as integer

do while i<>0

j=i

i=instr(i+1,string,"\",3)

loop

'j ist jetz die Position des letzten "\"

-->

ergebnis=right(string,j+1)

Vorsicht: Nicht getestet!!!!!!

Geschrieben
Original geschrieben von Blondi

dim i as integer, j as integer

do while i<>0

j=i

i=instr(i+1,string,"\",3)

loop

'j ist jetz die Position des letzten "\"

-->

ergebnis=right(string,j+1)

Vorsicht: Nicht getestet!!!!!!

wunderbares beispeil für ne endlosschleife ;)

ist zwar n bissl viel code, erfüllt aber seinen Zweck



Public Function CSVread(strInput As String, intPos As Integer, strby As String) As String


  Dim strCSVInput As String

  Dim strTemp As String

  Dim intTempPos As Integer

  Dim intLoopCount As Integer


  strCSVInput = strInput

  intLoopCount = 1


  If intPos = 1 Then

     intTempPos = (InStr(1, strCSVInput, strby) - 1)

     strTemp = Left(strCSVInput, intTempPos)

  ElseIf intPos > 1 Then

     Do

        intTempPos = (Len(strCSVInput) - InStr(1, strCSVInput, strby))

        strCSVInput = Right(strCSVInput, intTempPos)

        intLoopCount = intLoopCount + 1


     Loop While intLoopCount < intPos

     intTempPos = (InStr(1, strCSVInput, strby) - 1)

     If intTempPos > 0 Then

        strTemp = Left(strCSVInput, intTempPos)

     Else

        strTemp = strCSVInput

     End If

  Else

      MsgBox "Error can't find Pos " & intPos

      Exit Function

  End If


  CSVread = strTemp


End Function


Private Sub Form_Load()

MsgBox CSVread("\\sntko4\gte\gtewrk\hsd-cd\S513792-1.jpg", 100, "\")

End

End Sub

Geschrieben

Hallo alle zusammen,

erstmal danke für eure beiträge. Durch ein tip eines Arbeitskollegen habe ich das problem mit der Funktion InStrRev () gelöst.

War zwar ein wenig umständlich da diese Funktion erst ab a00 zur Verfügung steht, ich hatte aber ein Modul, die diese Funktion auch in a97 ermöglicht.

gruss

2 da Beat

Geschrieben
Original geschrieben von Blondi

Wieso Endlosschleife???

Wenn instr nichts findet, dann wird 0 zurückgegeben!!

*grrrr* nach reiflicher überlegung bin ich wieder einmal zum schluss gekommen das ich im unrecht bin... aber ein kleines fehlerchen ist trotzdem drin, Vergleich nr. 3 gibts es nicht

nichts desto trotz:

Cuiusvis hominis est errare, nullius nisi

insipientis in errore perseverare ;)

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...