Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

variable direct

Estas en el tema de variable direct en el foro de Visual Basic clásico en Foros del Web. Hola muchachos una cosulta tengo una variable llamada direccion que toma la ruta de un archivo y yo necesito obtener el valor del archivo apartir ...
  #1 (permalink)  
Antiguo 30/07/2009, 13:41
 
Fecha de Ingreso: septiembre-2007
Mensajes: 318
Antigüedad: 16 años, 7 meses
Puntos: 1
De acuerdo variable direct

Hola muchachos una cosulta tengo una variable llamada direccion que toma la ruta de un archivo y yo necesito obtener el valor del archivo apartir de esa variable como logro hacer esto. pongo un ejemplo.


ITEM=c/:c2c/clientes.txt

direccion = ITEM

yo necesito es que la variable sea igual a clientes.txt, quitandole la ruta y dejando solo el nombre del archivo ubicado en esa ruta

como puedo hacer esto por favor?????
  #2 (permalink)  
Antiguo 30/07/2009, 18:33
Avatar de calichecal  
Fecha de Ingreso: junio-2009
Ubicación: Colombia
Mensajes: 288
Antigüedad: 14 años, 11 meses
Puntos: 12
Respuesta: variable direct

Cita:
Iniciado por banrey Ver Mensaje
Hola muchachos una cosulta tengo una variable llamada direccion que toma la ruta de un archivo y yo necesito obtener el valor del archivo apartir de esa variable como logro hacer esto. pongo un ejemplo.


ITEM=c/:c2c/clientes.txt

direccion = ITEM

yo necesito es que la variable sea igual a clientes.txt, quitandole la ruta y dejando solo el nombre del archivo ubicado en esa ruta

como puedo hacer esto por favor?????
yo lo haria asi:

Private Sub Command1_Click()
Dim eslas As String, i As Integer, contrario As String, pos As Integer
Dim item_derechaaizquierda As String, cdireccion As String, direccion As String
Dim direccionalcontrario As String
Item = c/:c2c/clientes.txt
eslas = "/"
For i = Len(Item) To 1 Step -1
contrario = Mid(Item, i, 1)
item_derechaaizquierda = item_derechaaizquierda & contrario
Next i
pos = InStr(1, item_derechaaizquierda, eslas)
direccionalcontrario = Left(item_derechaaizquierda, pos - 1)

For i = Len(direccionalcontrario) To 1 Step -1
cdireccion = Mid(direccionalcontrario, i, 1)
direccion = direccion & cdireccion
Next i
End Sub

aunque yose que existen otros modos menos largos,solo es cuestion de dedicarle un rato mas,ojala te sirva este.

Última edición por calichecal; 30/07/2009 a las 18:38
  #3 (permalink)  
Antiguo 30/07/2009, 18:40
Avatar de seba123neo  
Fecha de Ingreso: febrero-2007
Ubicación: Esperanza, Santa Fe
Mensajes: 1.046
Antigüedad: 17 años, 3 meses
Puntos: 19
Respuesta: variable direct

Hola, una opcion sin Split() puede ser..

Código vb:
Ver original
  1. Private Sub Form_Load()
  2.    Dim vRuta As String
  3.    vRuta = "c/:c2c/clientes.txt"
  4.    MsgBox Mid(vRuta, InStrRev(vRuta, "/") + 1, Len(vRuta))
  5. End Sub

sino usa Split()

saludos.
__________________
" Todos Somos Ignorantes; lo que pasa es que no todos ignoramos las mismas cosas " - Albert Einstein
  #4 (permalink)  
Antiguo 31/07/2009, 10:18
 
Fecha de Ingreso: septiembre-2007
Mensajes: 318
Antigüedad: 16 años, 7 meses
Puntos: 1
De acuerdo Respuesta: variable direct

Me explico un poco mejor tengo este cod que me lleva a a un modulo de clase llamado Seldir pero cuando llega a la clase me sale el siguiente error

ERROR DE COMPILACION
VARIABLE NO DEFINIDA



Esta es la funcion LIstar:

Public Function listar(Path As String, ext As String)
'Empieza la acción
Dim sRuta As String
Dim i As Integer
Dim SelectDir As String
'las clases usadas...
'Dim colDir As String
'
#If esOLE Then
'Si usamos la librería OLE
Dim tNombre As New oSelDir.cNombre
Dim cSelDir As New oSelDir.SelDir
#Else
'Si usamos las clases cargadas
Dim tNombre As New cNombre
Dim cSelDir As New SelDir
#End If

On Local Error Resume Next


sRuta = Trim$(Path)
MousePointer = vbArrowHourglass
DoEvents
If Len(ext) Then
'Los archivos del directorio especificado
Set colDir = cSelDir.Directorio(sRuta, ext)
Else
'Sólo el directorio actual
tNombre.Nombre = sRuta
End If
colDir.AddItem tNombre
'End If

'Mostrar el contenido de colDir
List1.Clear
For Each tNombre In colDir
List1.AddItem tNombre.Nombre
Next
Label2 = "Archivos/Directorios hallados: " & List1.ListCount

'Liberar memoria y los objetos
Set tNombre = Nothing
Set colDir = Nothing
Set cSelDir = Nothing
'
'cmdAceptar.Caption = "&Aceptar"
MousePointer = vbDefault
DoEvents
On Local Error GoTo 0
End Function

y esta es mi clase Seldir:(donde es dirigido la variable que contiene la ruta del archivo):



Public Function Directorio(sDir As String, sExt As String) As Variant
'Esta función devolverá una colección del tipo Nombres
'con el contenido de los archivos del directorio indicado
'
Dim colDir As New cNombres

SelectDir.Dir1.Path = sDir

SelectDir.Archivos colDir, sExt

Set Directorio = colDir.Nombres
End Function

Por lo que puedo ver la variable colDir de la funcion Listar esta vacia.

como puedo hacer no entiendo si es ese el error o otro.

Muchas Gracias
  #5 (permalink)  
Antiguo 30/08/2009, 12:37
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 9 meses
Puntos: 29
Respuesta: variable direct

La respuesta a la primera pregunta es simple:
Directorio=Dir$(Directorio)
Esto te deja en la variable Directorio solamente el nombre del fichero como pedías.
La única condición es que el fichero clientes.txt debe existir o te devolverá una cadena en blanco (creo).
El mogollón de después no lo he llegado a asimilar.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:06.