Programación General > Visual Basic para principiantes

 Separar path de fichero sin instrrev

(1/2) > >>

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

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa