Cadenas...

Iniciado por programatrix, 25 Diciembre 2005, 20:07 PM

0 Miembros y 1 Visitante están viendo este tema.

programatrix

Pues tengo el siguiente problema. Tengo una vadena:
CitarC:\posiblecarpeta\posiblefichero.extensión
Y de está cadena, necesito sacar lo del final. posiblefichero.extensión
Saludos  ::)

alfafa

Hay muchas maneras de hacerlo, yo te propongo lo siguiente: ir evaluando cada caracter desde la derecha hasta que encuentres "\", donde debes parar de evaluar y guardar desde esa posición el resto de la cadena (o ir añadiendo a una variable cada caracter que evaluas).

Un ejemplo de código sería, más o menos (optimízalo tu, solo es una idea):

'podemos hacerlo al apretar un botón (Command1) y con la cadena de texto en un textbox (Text1):
Private Sub Command1_Click()
Dim Cadena as String 'esta variable contendrá la cadena
Dim I as Integer 'declaramos una variable que servirá de contador
For I = Len(Text1.Text) to 1 Step -1 'evaluamos las posiciones desde el final, bajando (hacia la izquierda).
  If Mid(Text1.Text,I,1) = "\" then 'si el caracter que evaluamos es "\" ...
    Exit For '... paramos de evaluar y salimos del proceso
  Else ' sinó
    Cadena = Mid(Text1.Text,I,1) & Cadena 'ponemos el nuevo carácter al inicio de la cadena
  End If
Next
MsgBox Cadena 'mostramos la cadena o cualquier otra fucnión con ella. Puedes usar la cadena como quieras a partir de aquí.
End Sub


El código está hecho sin el VB, puede que se me haya escapado algun error de mecanografia, etc. Pretendo que entiendas la idea, no que lo copies al pie de la letra.
Espero que te sirva!!

Saludos.

Slasher-K

Una más fácil:


Function GetFileTitle(Filename As String) As String
  On Error Resume Next

  GetFileTitle = Trim(Replace(Mid$(Filename, InStrRev(Filename, "\") + 1), vbNullChar, vbNullString))
End Function


Saludos.



A la reina de las profundidades que cuida los pasos de una sombra en la noche :*

programatrix

Gracias Slasher-K, de todas maneras me funcionó muy bien la de alfafa.
Saludos  ::)