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

Error 75 al abrir varios text files

Estas en el tema de Error 75 al abrir varios text files en el foro de Visual Basic clásico en Foros del Web. Buenas compañer@s. Hace unos días abrí un post porque no conseguia abrir varios text files con un commondialog. Aunque tengo un problema parecido, como en ...
  #1 (permalink)  
Antiguo 19/01/2010, 23:34
 
Fecha de Ingreso: abril-2009
Mensajes: 72
Antigüedad: 15 años, 6 meses
Puntos: 0
Error 75 al abrir varios text files

Buenas compañer@s.

Hace unos días abrí un post porque no conseguia abrir varios text files con un commondialog.

Aunque tengo un problema parecido, como en el anterior post se me quedó el problema más o menos resuelto, por eso he decido abrir otro. Espero no estar metiendo la pata haciendolo.

A ver, el problema que tenia antes, era que queria abrir varios archivos txt, y lo conseguí con el siguiente código y la ayuda del compi pkj:

Código:
Private Sub Command1_Click()

CommonDialog1.DialogTitle = "Seleccione un archivo con extension ass"
CommonDialog1.Filter = "Archivos con extension .ass|*.ass"
CommonDialog1.ShowOpen

If CommonDialog1.FileName = "" Then
   Exit Sub
Else
  
  Open CommonDialog1.FileName For Input As #1
  
  Text2 = Text2 & CommonDialog1.FileTitle & vbNewLine
  
  Line Input #1, Linea
    
  Text1.Text = Text1.Text & Linea & vbNewLine
  
  Close
  
End If

End Sub
Con ese código, puedo ir seleccionando varios archivos, y se van cargando en el Text1, solo la primera linea que contiene el text file, y en el Text2, solo el nombre del archivo.

Despues de tirarme tres o cuatro días buscando la posibilidad de seleccionar los distintos text files a la vez, encontre una linea de codigo que me permite hacerlo:

Código:
CommonDialog1.flags = cdlOFNAllowMultiselect Or cdlOFNFileMustExist Or cdlOFNExplorer
Sin embargo, me da
Error '75' en tiempo de ejecucion
Error de acceso a ruta o archivo

Y cuando le doy a depurar, me dice que el error está en la linea:

Código:
Open CommonDialog1.FileName For Input As #1
No sé ya como solucionarlo, si algún alma caritativa quisiera echarme un cable le estay agradecido.

Un saludo.

Alex
  #2 (permalink)  
Antiguo 20/01/2010, 03:54
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 18 años, 3 meses
Puntos: 29
Respuesta: Error 75 al abrir varios text files

El problema que tienes y por el cual no quise comentarte la posibilidad del multiselect es que de ese modo, el valor de FileName no contiene la ruta al fichero que marcas, solo el nombre y extensión. Si pej. seleccionas "C:\texto.txt", en FileName solo tienes "Texto.txt". La ruta la tienes que añadir al abrir el fichero. Como yo tuve problemas con eso dejé de intentar usar ese método. Cuando quiero seleccionar varios ficheros añado un DriveList, un DirList y un FileList del que selecciono los ficheros, pero para no complicarte te dí esa solución.

Suerte con ello.
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!
  #3 (permalink)  
Antiguo 21/01/2010, 23:51
 
Fecha de Ingreso: abril-2009
Mensajes: 72
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Error 75 al abrir varios text files

Gracias nuevamente pkj.

Seguire buscando, si encuentro la solución, la posteo aquí.

Un saludo.

Miguel.
  #4 (permalink)  
Antiguo 22/01/2010, 03:57
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 18 años, 3 meses
Puntos: 29
Respuesta: Error 75 al abrir varios text files

Ya que tanto empeño tienes te he buscado la solucion y así tambien la tendré yo.

Código vb:
Ver original
  1. Dim sFile() As String
  2.  
  3.   With CD1
  4.     .InitDir = "C:\Windows"                         '
  5.    .FileName = vbNullString                        'Clear out previous filename(s)
  6.    .Filter = "All Files (*.*)|*.*" 'Set the input mask
  7.    .FilterIndex = 1                                'Set index of filter
  8.    'Must have explorer flag with multiselect flag!!!
  9.    .Flags = cdlOFNHideReadOnly Or cdlOFNPathMustExist Or cdlOFNAllowMultiselect Or cdlOFNExplorer
  10.     .DialogTitle = "Import Files"                  'Set caption of CD
  11.    .CancelError = True                             'Die if there are any errors
  12.    .MaxFileSize = 30000                            'Just to make sure we have enough room
  13.    On Error Resume Next
  14.     .ShowOpen                'Open
  15.    
  16.     Select Case Err.Number
  17.       Case cdlCancel
  18.         'Cancel was selected
  19.        Exit Sub
  20.       Case Is <> 0
  21.         'Some other error occurred
  22.        Exit Sub
  23.       Case 0
  24.         'No error occured
  25.         sFile = Split(.FileName, ChrW$(0))              'Take apart null delimited list returned from multiselect CD
  26.     End Select
  27.      On Error GoTo 0
  28.   End With
  29.  
  30.   If UBound(sFile) > 0 Then
  31.     Dim f As Integer
  32.     For f = 1 To UBound(sFile)
  33.       MsgBox sFile(0) & sFile(f)
  34.     Next f
  35.   Else
  36.     MsgBox sFile(0)
  37.   End If

No sé donde tuve yo el problema, ya que parece facil, pero el caso es que me cansé y lo dejé.

Saludos
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!

Última edición por pkj; 22/01/2010 a las 04:04
  #5 (permalink)  
Antiguo 23/01/2010, 18:08
 
Fecha de Ingreso: abril-2009
Mensajes: 72
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Error 75 al abrir varios text files

Buenas y gracias pkj.

Genial.

Veras... buscando yo también, y juntando código de aquí y de allá, he hecho este código:

Código:
Private Sub Command1_Click()

    Dim vFiles As Variant
    Dim lFile As Long
    
    CommonDialog1.FileName = ""
    CommonDialog1.Flags = cdlOFNAllowMultiselect Or cdlOFNExplorer Or cdlOFNHideReadOnly
    CommonDialog1.Filter = "All files (*.*)|*.*"
    CommonDialog1.ShowOpen
        
    vFiles = Split(CommonDialog1.FileName, Chr(0))
    
    If UBound(vFiles) = 0 Then
      List1.AddItem CommonDialog1.FileTitle
    Else
      For lFile = 1 To UBound(vFiles)
        List1.AddItem vFiles(lFile)
      Next lFile
    End If
    
Dim cosa As String
Dim linea As String
Dim z As Integer

For z = 0 To Form1.List1.ListCount - 1
cosa = Form1.List1.List(z)

If cosa <> "" Then
       Open cosa For Input As #1
        Line Input #1, linea
            Text1.Text = Text1.Text & linea & vbNewLine
        Close #1
End If

Next

End Sub
Bueno, el código hace más o menos lo que quiero (me permite seleccionar varios archivos; me muestra en un listbox "solo" el nombre del fichero, sin la ruta; y en un textbox me muestra el contenido de la primera linea del text file), el problema, es que cuando despues de haber seleccionado x archivos (puede ser uno o varios), si vuelvo a abrir el CommonDialog para añadir algún otro, se repite lo que ya habia en el textbox, creo que el error debe de ser muy tonto, pero no consigo dar con la tecla para que no se repita, creo saber por que linea debe estar el fallo, pero creo que estoy hocicao y no consigo verlo desde fuera.

Si quieres, echale un vistazo a ver si consiguiéramos ver donde esta el fallo.

Si lo encontrase, lo vuelvo a postear.

Espero que también este te pueda servir de algo para cualquier cosa.

Un saludo, y agradezco mucho lo que me estas ayudando.
  #6 (permalink)  
Antiguo 24/01/2010, 02:11
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 15 años
Puntos: 53
Respuesta: Error 75 al abrir varios text files

Hola:

Ten en cuenta que el TextBox y el List tienen ya los datos de la primera búsqueda por lo que como precaución, antes de poner nada debes inicializar su contenido.

Yo pondría al entrar en la rutina y antes del Show
Text1.Text = ""
List1.Clear

Saludos
  #7 (permalink)  
Antiguo 24/01/2010, 03:59
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 18 años, 3 meses
Puntos: 29
Respuesta: Error 75 al abrir varios text files

Como comenta erbuson, el fallo está en que no inicializas el ListBox.
Eso lo puedes hacer nada más entrar a la sub.
El TextBox lo puedes limpiar en un boton "Nuevo" o preguntando antes de empezar a cargar los textos seleccionados:

List1.Clear

....
...
commondialog1.showopen

If List1.ListCount > 0 Then
If MsgBox("¿Quieres agregar los textos a continuación del existente?",vbYesNo) = vbNo Then Text1.Text = ""

....
cargas los textos
...

End If

Que se dé bien.
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!

Etiquetas: files, txt
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 08:36.