Programación General > Visual Basic para principiantes
Separar path de fichero sin instrrev
J-Ant:
Buenas tardes.
Tengo un problema con un proyecto realizado en vb4, el cual no puedo migrar a vb6 o .net, ya que tiene controles personalizados externos.
Bueno, el caso no es ese. En dicho proyecto estoy intentando recoger el path y nombre de fichero desde un commondialog, y separar el path del nombre de fichero. Al estar en vb4, no tengo acceso a la funcion InstrRev, con lo que creo que deberia recorrer el filename hasta encontrar el último caracter "", y guardar hasta ahi en el path. El caso es que no se como recorrer para buscar la ultima instancia de un caracter.
Agradecido por cualquier ayuda que me puedan prestar
m0skit0:
StrReverse e InStr
EDITO: InStrRev hace lo mismo que las anteriores combinadas.
PD: por favor, consulta la documentación de VB antes de preguntar, normalmente ahi tienes la respuesta a la mayoría de estas preguntas simples :P
J-Ant:
Hola,
Antes de preguntar, he de decir que ya consulte manuales, pero no me percaté de StrReverse... porque se incluia en Visual Basic 2005, no en vb4, pero gracias igualmente por el aporte :good: .
Nebire:
Puedes usar el 'filesystemobject' contiene clases que permiten manipular ficheros...
un ejemplo de código:
--- Código: Visual Basic --- Dim fso As New FileSystemObjectDim Dr As DriveDim Fi As FileDim Fo As Folder Private Sub Command1_Click() Dim ruta As String ruta = "C:autoexec.bat" Set Fi = fso.GetFile(ruta) If Not (Fi Is Nothing) Then MsgBox "Ruta completa : " & Fi.Path & vbCrLf & _ " en la carpeta: " & Fi.ParentFolder & vbCrLf & _ " de nombre: " & Fi.Name Else MsgBox "error, ocurrió un error con el fichero " & ruta End IfEnd Sub
F_Tanori:
Alternativas hay muchas que tal si la reversa se la aplicas en un ciclo por ejemplo FOR:
--- Código: Visual Basic ---Function ObtenerNombreArchivo(Ruta As String) Dim Final As Integer, C As Integer Dim Caracter As String, Cadena As String Final = Len(Ruta) For C = Final To 1 Step -1 Caracter = Mid(Ruta, C, 1) If Caracter = "" Then Exit For Else Cadena = Caracter & Cadena End If Next C ObtenerNombreArchivo= CadenaEnd Function
--- Código: Visual Basic --- NombreArchivo = ObtenerNombreArchivo("C:DocumentosOtrosArchivo.doc")
O en cualquier otro ciclo, claro que siempre es mejor utilizar funciones ya hechas para no tener que estar reinventando las cosas, salvo cuando son sistemas heredados , que hay que desarrollar otras soluciones. pero si no se planea la actualizacion tarde o temprano se tendran problemas mas graves
Saludos
Navegación
[#] Página Siguiente
Ir a la versión completa