• Jueves 7 de Noviembre de 2024, 23:46

Autor Tema:  Problema al cargar un texto desde un FileListBox  (Leído 2917 veces)

Kyrylys

  • Miembro activo
  • **
  • Mensajes: 80
    • Ver Perfil
Problema al cargar un texto desde un FileListBox
« en: Lunes 27 de Octubre de 2008, 13:02 »
0
Hola buenas, estoy practicando VB6.0 y tengo un problema al hacer la carga de un .txt seleccionado desde un FileListBox

la aplicación que estoy haciendo consta de varios formularios, en el 1º hay un RichTextBox donde se puede escribir texto o que se cargue.

En el 1º formulario hay una opción para hacer un load del archivo por medio de un cuadro de dialogo, y así mismo hay un botón que llama a un 2º formulario dónde se muestra un explorador por medio de DriveListBox, DirListBox y FileListBox. El problema al hacer la carga desde el FilelistBox es que hay ocasiones en las queno lo ejecuta.

Por ejemplo: el DriveListBox y el DirListBox muestran la ruta de la última vez que accediste a alguno de los discos/carpetas bien por medio de la aplicación o por abrir una carpeta, reconoce como root la ultima ruta almacenada en el explorer del SO.
Si cargo algún archivo de ese directorio no hay problemas, pero si cambio  la selección del DirListBox o el DriveListBox me arroja un error = " Error 53 no se encuentra el archivo seleccionado".

Ha probado a cambiar de canal segun haga el load por el dialog o por los listbox y no se soluciona.
Adjunto los códigos del Load (el del dialog no me da ningun problema, pero es por si le afecta en algo)

Codigo del Dialog
Diag
Código: Text
  1.  
  2. Dim longitud As Integer
  3. Dim texto As String
  4. (...)
  5. diag.Filter = "Archivos de texto (*.txt)|*.txt"
  6. diag.ShowOpen
  7. 'para que cuando canceles no de error => IF
  8. If diag.FileName <> "" Then
  9. 'abrir fichero canales de 1 a 511
  10. Open diag.FileName For Input As #1
  11. 'guardar la longitud
  12. longitud = FileLen(diag.FileName)
  13. '#canal donde hemos guardado el fichero
  14. texto = Input(longitud, #1)
  15. rtxttexto.Text = texto
  16. 'cerrar canal
  17. Close #1
  18. End If
  19.  
  20.  


flfile => FileListBox
Código: Text
  1.  
  2. Dim fllongitud As Integer
  3. Dim fltexto As String
  4. (...)
  5. Private Sub flfile_Click()
  6. If flfile.FileName <> "" Then
  7. 'abrir fichero canales de 1 a 511
  8. Open flfile.FileName For Input As #1
  9. 'guardar la longitud
  10. fllongitud = FileLen(flfile.FileName)
  11. '#canal donde hemos guardado el fichero
  12. fltexto = Input(fllongitud, #1)
  13. Form1.rtxttexto.Text = fltexto
  14. 'cerrar canal
  15. Close #1
  16. End If
  17. Form3.Hide
  18. End Sub
  19.  

Espero qeu me puedan ayudar, muchas gracias.


F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: Problema al cargar un texto desde un FileListBox
« Respuesta #1 en: Lunes 27 de Octubre de 2008, 13:30 »
0
Cita de: "Kyrylys"
Hola buenas, estoy practicando VB6.0 y tengo un problema al hacer la carga de un .txt seleccionado desde un FileListBox

...la aplicación que estoy haciendo consta de varios formularios, en el 1º hay un RichTextBox donde se puede escribir texto o que se cargue...

El control RichTextBox cuenta con un metodo llamado LoadFile que recibe como parametro el nombre del archivo y el tipo (opcional) y... lo carga :D

Código: Visual Basic
  1. RichTextBox1.LoadFile "C:Archivo.rtf"
  2.  

Cita de: "Kyrylys"
El problema al hacer la carga desde el FilelistBox es que hay ocasiones en las queno lo ejecuta.

Por ejemplo: el DriveListBox y el DirListBox muestran la ruta de la última vez que accediste a alguno de los discos/carpetas bien por medio de la aplicación o por abrir una carpeta, reconoce como root la ultima ruta almacenada en el explorer del SO.
Si cargo algún archivo de ese directorio no hay problemas, pero si cambio  la selección del DirListBox o el DriveListBox me arroja un error = " Error 53 no se encuentra el archivo seleccionado"...

Eso es porque el esta tomando el directorio actual [curdir] pudes cambiar la ruta utilizando [ chdir(path) ] aunque esto no es muy viable, el error es claro  no se encuentra el archivo seleccionado donde lo estas buscando no existe el archivo supongamos que el directorio actual esta en "C:Archivos de programaMicrosoft Visual StudioVB98"

Al hacer esto estas obviando la ruta ya que FileName solo devuelve el nombre del archivo no toda la ruta( entonces el sistema entiende como que se encuentra en al directorio actual "C:Archivos de programaMicrosoft Visual StudioVB98Archivo.rtf")

Código: Visual Basic
  1. Open flfile.FileName For Input As #1
  2.  

La ruta la puedes obtener de la propiedad path

Código: Visual Basic
  1. Open flfile.Path &"" & flfile.FileName For Input As #1
  2.  

Bueno ya antes se ha explicado lo del FreeFile()

viewtopic.php?f=143&t=37194#p135453
viewtopic.php?f=143&t=37202#p135552

Saludos
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

Nebire

  • Miembro HIPER activo
  • ****
  • Mensajes: 670
    • Ver Perfil
Re: Problema al cargar un texto desde un FileListBox
« Respuesta #2 en: Lunes 27 de Octubre de 2008, 13:57 »
0
Cambia estas líneas
Código: Visual Basic
  1.  
  2.     Private Sub flfile_Click()
  3.         If flfile.FileName <> "" Then
  4.               Open flfile.FileName For Input As #1
  5.      ....
  6.      ....
  7.      ....
  8.  
  9.  

Por estas otras:
Código: Visual Basic
  1.  
  2.     Private Sub flfile_Click()
  3.         dim fich as string
  4.      
  5.         If flfile.FileName <> "" Then
  6.               fich= File1.Path & "" & File1.FileName  ' ruta entera hacia el fichero
  7.               if dir(fich)<>"" then                ' desde que se seleccionó el archivo... existe aún en diche ruta
  8.                   Open fich For Input As #1    ' si existe todavía abrimos el archivo, dando [color=#8000FF]su ruta completa[/color]....
  9.         ....
  10.         ....
  11.         ....    
  12.  
  13.  
p.d: se me ha adelantado F_Tanori al enviar la respuesta, desde que estoy respondiendo... Como indicas que estás practicando, el código que te indico sigue siendo válido sin menoscabo de lo que te indica F_Tanori...
«Ma non troppo»
----> ModoVacaciones = False<----

Kyrylys

  • Miembro activo
  • **
  • Mensajes: 80
    • Ver Perfil
Re: Problema al cargar un texto desde un FileListBox
« Respuesta #3 en: Lunes 27 de Octubre de 2008, 14:02 »
0
Muchas gracias, lo probaré ^^

Desconocía el método LoadFile, pero la gracia estaba en practicar el tema de los diferentes ListBox, aun asi gracias de nuevo