• Domingo 22 de Diciembre de 2024, 17:07

Autor Tema:  Cadenas??????  (Leído 1730 veces)

az8

  • Miembro MUY activo
  • ***
  • Mensajes: 111
    • Ver Perfil
Cadenas??????
« en: Jueves 15 de Febrero de 2007, 01:43 »
0
hola amigos tengo otro problema para variar.. jaja

necesito una funcion ke me extraiga caracteres de una linea de texto....

por ejemplo tengo la siguiente ruta:

c:\prueba\carpeta1

lo ke kiero extraer es la ultima cadena o sea "carpeta1"... pero siempre lo ke esta despues del ultimo "\"


espero me ayuden ... gracias

ELECTRONICO_44

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Cadenas??????
« Respuesta #1 en: Jueves 15 de Febrero de 2007, 01:56 »
0
hola que tal mira eso lo he hecho con la funcion split que regresa un arreglo de palabras y puedes tomar la ultima posicion del arreglo concatenandola con &

que seria & "\" & ultimaposiciondelarreglo y listo

espero y te funcione

luciano2

  • Miembro activo
  • **
  • Mensajes: 71
    • Ver Perfil
    • http://www.recursosvisualbasic.com.ar/
Re: Cadenas??????
« Respuesta #2 en: Jueves 15 de Febrero de 2007, 02:00 »
0
Te paso dos formas ( La primera solo si es un path)


La primera con el api GetFileTitle
Código: Text
  1.  
  2. Private Declare Function GetFileTitle Lib "comdlg32.dll" Alias "GetFileTitleA" (ByVal lpszFile As String, ByVal lpszTitle As String, ByVal cbBuf As Integer) As Integer
  3. Function Extraer(PAth) As String
  4.    
  5.     Dim Buffer As String
  6.     Buffer = String(255, 0)
  7.     GetFileTitle PAth, Buffer, Len(Buffer)
  8.     Extraer = Left$(Buffer, InStr(1, Buffer, Chr$(0)) - 1)
  9.    
  10. End Function
  11.  
  12. Private Sub Command1_Click()
  13. MsgBox Extraer("c:\carpeta\carpeta\carpeta\archivo.htm")
  14. End Sub
  15.  
  16.  
  17.  

La segunda con la funcion InstrRev de visual basic

Código: Text
  1.  
  2. Function Extraer(Cadena, Delimitador As String) As String
  3.    
  4.     Extraer = Right(Cadena, Len(Cadena) - InStrRev(Cadena, Delimitador))
  5.        
  6. End Function
  7.  
  8. Private Sub Command1_Click()
  9. MsgBox Extraer("c:\carpeta\carpeta\carpeta\archivo.htm", "\")
  10. End Sub
  11.  
  12.  
  13.  


saludos

Recursos visual basic

RadicalEd

  • Moderador
  • ******
  • Mensajes: 2430
  • Nacionalidad: co
    • Ver Perfil
Re: Cadenas??????
« Respuesta #3 en: Jueves 15 de Febrero de 2007, 13:57 »
0
Utiliza la función Mid.
Código: Text
  1. cadena = "c:\prueba\carpeta1"
  2. var = Mid(cadena,10,8)
  3. Print var
  4.  
Se tiene una variable cadena, con la función se toma la cadena, el 10 es desde donde queremos empezar y el 8 la cantidad de caracteres a cojer.

Ojala te sirva.
Chao
El pasado son solo recuerdos, el futuro son solo sueños

Mollense

  • Miembro de PLATA
  • *****
  • Mensajes: 1755
  • Nacionalidad: ar
    • Ver Perfil
    • http://solocodigo.com/
Re: Cadenas??????
« Respuesta #4 en: Jueves 15 de Febrero de 2007, 14:49 »
0
Ante todo aclaro que no tengo instalado vb pero podés probar algo así:
Código: Text
  1. nombre = Right(ruta, Len(ruta)-InStrRev(ruta,"\"))
  2.  

No estoy seguro si estoy escribiendo bien las funciones pero la idea es esta:
InStrRev(ruta,"\") debería devolverte la posición del último "\"
Por lo que Len(ruta)-InStrRev(ruta,"\") será equivalente al largo de el nombre del directorio ("carpeta1" en el caso de tu ejemplo).-
Por último Right te va a devolver los Len(ruta)-InStrRev(ruta,"\") caracteres de la derecha de la cadena ruta

Espero no estar diciendo sandeces  :)
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."


...no te quedes mirando.