Visual Basic - LISTBOX

Life is soft - evento anual de software empresarial
 
Vista:

LISTBOX

Publicado por JULIOESCOBAR (58 intervenciones) el 05/05/2007 01:25:13
Amigos: En un LISTBOX tengo varios archivos TXT y quiero unirlos, ejemplo:
ARCHIVOok= arch1+arch2+arch3
Como le hago ó que me recomiendan ??, gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:LISTBOX

Publicado por Matias (80 intervenciones) el 07/05/2007 18:58:58
Explicate un poco mas o pones un pedazo del codigo para que se entienda mejor que es lo que queres.

por lo que yo entendi es que tenes un listbox en el cual a varios items que hacen referencia a archivos de texto que estan en la maquina, y lo que vos queres hacer es unir esos archivos en uno solo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

ESO ES LO QUE QUIERO

Publicado por JULIOESCOBAR (58 intervenciones) el 09/05/2007 21:21:44
Si "chicho" eso es lo que quiero, gracias de antemano
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Solucion

Publicado por Matias (80 intervenciones) el 10/05/2007 19:13:51
Te arme una funcion conciderando que en la lista los items se muestran asi.

c:\matias.txt
c:\matias2.txt
c:\matias3.txt
c:\matias4.txt
etc.

Es decir que en cada item esta escrita la direccion del archivo

'******************COMIENZO DE LA FUNCION************************
Private Function UnirArchivos(Lista As ListBox, Destino As String)

'Si hay algun error lleva a la funcion a la etiqueta END1 que esta al final
On Error GoTo End1

'Declaramos Las Variables
Dim nFic As Integer
Dim nFic2 As Integer
Dim TxtArchivo As String
Dim I As Integer

'Si el archivo de "Destino" ya existe lo elimina
If Dir(Destino) <> "" Then Kill Destino

'Le da a "nFic" un numero de archivo disponible
nFic = FreeFile

'Abre el archivo de destino, si no existe lo crea
Open Destino For Append As nFic
For I = 0 To Lista.ListCount - 1
DoEvents

'Le da a "nFic2" un numero de archivo disponible
nFic2 = FreeFile

'Abre el archivo de la lista segundo la posicion "I" y lo almacena en txtArchivo
Open Lista.List(I) For Binary As nFic2
TxtArchivo = Space(LOF(nFic2))
Get #nFic2, , TxtArchivo
Close nFic2

'Escribi la la informacion de el archivo abierto al final del de Destino
Print #nFic, TxtArchivo
Next

'Cierra el "Destino" archivo abierto
Close nFic
Exit Function

'Etiqueta End1
End1:
'Si un archivo de la lista no existe lo informa con un error
If Err.Number = 53 Then
MsgBox "No se encuntra el archivo del item: " & I & Chr(13) & Chr(34) & Lista.List(I) _
& Chr(34), vbCritical, "Error#" & Err.Number
'cierra todos los archivos abiertos
Reset
Exit Function
End If

' si Se produce algun otro tipo de error tambien lo infoma
MsgBox Err.Description, vbCritical, "Error#" & Err.Number
' Cierra todos los archivos abiertos
Reset
End Function
'******************FIN DE LA FUNCION*****************************

la forma para usarla seria:

UnirArchivos Nombre de la lista, Destino para el archivo unido

****************************************************

Espero que te sirva y cualquier duda o cambio que quieras hacerle y no sepas como avime por aca o via mail.
te cuento que con esta funcion podes unir cualquier tipo de archivo con cualquier otro y crear un con la extencion que quieras (igual no tiene mucho sentido)

Saludos Julio

MATIAS (o chicho como quieras)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Solucion (Sin Errores)

Publicado por Matias (80 intervenciones) el 10/05/2007 19:33:53
Perdon, pero despues de probar bien el codigo anterior me di cuenta que tenia errores, Este es la funcion nueva.

'******************COMIENZO DE LA FUNCION************************
Private Function UnirArchivos(Lista As ListBox, Destino As String)

'Si hay algun error lleva a la funcion a la etiqueta END1 que esta al final
On Error GoTo End1

'Declaramos Las Variables
Dim nFic As Integer
Dim nFic2 As Integer
Dim TxtArchivo As String
Dim I As Integer

'Si el archivo de "Destino" ya existe lo elimina
If Dir(Destino) <> "" Then Kill Destino

'Le da a "nFic" un numero de archivo disponible
nFic = FreeFile

'Abre el archivo de destino, si no existe lo crea
Open Destino For Append As nFic
For I = 0 To Lista.ListCount - 1
DoEvents

'Le da a "nFic2" un numero de archivo disponible
nFic2 = FreeFile

'Comprueba que exista el archivo de la posicion "I" en la lista
If Dir(Lista.List(I)) <> "" Then

'Abre el archivo de la lista segundo la posicion "I" y lo almacena en txtArchivo
Open Lista.List(I) For Binary As nFic2
TxtArchivo = Space(LOF(nFic2))
Get #nFic2, , TxtArchivo
Close nFic2

'Escribi la la informacion de el archivo abierto al final del de Destino
Print #nFic, TxtArchivo

End If
Next

'Cierra el "Destino" archivo abierto
Close nFic
Exit Function

'Etiqueta End1
End1:
' si Se produce algun otro tipo de error lo infoma
MsgBox Err.Description, vbCritical, "Error#" & Err.Number
' Cierra todos los archivos abiertos
Reset
End Function
'******************FIN DE LA FUNCION*****************************

esta funcion solo une los archivos que existen.

Te repito que te arme la funcion conciderando que en la lista los items se muestran asi.

c:\matias.txt
c:\matias2.txt
c:\matias3.txt
c:\matias4.txt
etc.

Es decir que en cada item esta escrita la direccion del archivo

la forma de usuarla seria:

UnirArchivos "Lista que contiene los archivos", "Destino del archivo unido"

Matias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar