2daBeat Geschrieben 21. Oktober 2003 Geschrieben 21. Oktober 2003 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 Zitieren
Reinhold Geschrieben 21. Oktober 2003 Geschrieben 21. Oktober 2003 http://www.donkarl.com/FAQ/FAQ2Allgemein.htm#2.5 Zitieren
g_nikolai Geschrieben 22. Oktober 2003 Geschrieben 22. Oktober 2003 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 Zitieren
Leominora Geschrieben 22. Oktober 2003 Geschrieben 22. Oktober 2003 schau dir mal die Funktion ReInstr() an, könnte dir glaub ich helfen Zitieren
Blondi Geschrieben 22. Oktober 2003 Geschrieben 22. Oktober 2003 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!!!!!! Zitieren
-roTekuGeL- Geschrieben 22. Oktober 2003 Geschrieben 22. Oktober 2003 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 Zitieren
Blondi Geschrieben 22. Oktober 2003 Geschrieben 22. Oktober 2003 Original geschrieben von |roTekuGeL| wunderbares beispeil für ne endlosschleife Wieso Endlosschleife??? Wenn instr nichts findet, dann wird 0 zurückgegeben!! Zitieren
2daBeat Geschrieben 22. Oktober 2003 Autor Geschrieben 22. Oktober 2003 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 Zitieren
-roTekuGeL- Geschrieben 22. Oktober 2003 Geschrieben 22. Oktober 2003 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 Zitieren
Blondi Geschrieben 22. Oktober 2003 Geschrieben 22. Oktober 2003 Na ok. Sollte eigentlich vbTextCompare heißen. Edit: Müsste dann 1 sein Zitieren
Empfohlene Beiträge
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.