Visual Basic para Aplicaciones - tamaño archivo texto

Life is soft - evento anual de software empresarial
 
Vista:

tamaño archivo texto

Publicado por Belén (15 intervenciones) el 30/10/2006 19:29:17
Hola a todos.

Estoy generando un archivo de texto donde le voy introduciendo datos dentro de un bucle. Mi problema es que cuando llega a un número determinado de líneas no escribe más, es como si no cogiera más texto en el archivo. La instrucción que utilizo es la siguiente:

Open filename For Output As #NumFic

He leído por ahí que para ponerle un tamaño mayor al archivo puedo poner algo parecido a :
Open filename For Output As #NumFic len=22222

pero no funciona, no me da error ni nada, simplemente no me genera el archivo de texto, quitándole el LEN, vuelvo a insistir, me genera el archivo correctamente pero incompleto.

Alguie puede ayudarme?? Muchas 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:tamaño archivo texto

Publicado por JuanC (243 intervenciones) el 30/10/2006 20:20:47
El problema no está en el bucle? Verificaste el tipo de variable que usás
como contador?
Si querés mandame el código completo o publicalo...

Saludos desde Baires, JuanC
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

RE:tamaño archivo texto

Publicado por Belén (15 intervenciones) el 30/10/2006 20:27:27
Ante todo muchísimas gracias por tu ayuda. El código es el siguiente:

Private Sub Escribir_fichero()
Dim NumFic#, filename
Set rst = acceso.FnSQL_select("select * from Expedientes where Notificacion='EJECUTIVO' And Fecha_Cierre='__/__/____' order by anio, num_exp desc")
If Not rst.EOF Then
Dim imp_cent As Integer
NumFic = FreeFile
filename = App.Path & "\ejecutivo.txt"
On Error Resume Next
Open filename For Output As #NumFic (la solución era añadir el tamaño del archivo Len = 20000 pero no me funciona)

Dim domicilio, sujeto_pas, DNI, Poblacion, CP As String
Do While Not rst.EOF
If (rst!Notificar_a = "T") Then
domicilio = Trim(rst!Domicilio_Tit)
sujeto_pas = Trim(rst!Apellidos_Tit) & " " & Trim(rst!Nombre_Tit)
DNI = rst!DNI_Titular
Poblacion = Trim(rst!Poblacion_Tit)
CP = Trim(rst!CP_Tit)
Else
domicilio = Trim(rst!Domicilio_Cond)
sujeto_pas = Trim(rst!Apellidos_Cond) & " " & Trim(rst!Nombre_Cond)
DNI = rst!DNI_Cond
Poblacion = Trim(rst!Poblacion_Cond)
CP = Trim(rst!CP_Cond)
End If
Print #NumFic,
Print #NumFic, "MS"
Print #NumFic,
Print #NumFic, "Anual"
Print #NumFic, 15305
Print #NumFic, sujeto_pas
Print #NumFic, DNI
Print #NumFic,
Print #NumFic,
Print #NumFic,
Print #NumFic,
Print #NumFic,
Print #NumFic,
Print #NumFic, domicilio
Print #NumFic,
Print #NumFic,
Print #NumFic, CP
Print #NumFic, Poblacion
Print #NumFic,
Print #NumFic, rst!cod_expediente
Print #NumFic,
Print #NumFic,
Print #NumFic,
Print #NumFic,
Print #NumFic,
Print #NumFic,
Print #NumFic,
Print #NumFic,
Print #NumFic, rst!Importe * 100
Print #NumFic,
rst.MoveNext
Loop
Close #Num_Fic
rst.MoveFirst
End If
If Err.Number <> 0 Then
MsgBox Err.Description
Else
MsgBox "ARCHIVO GENERADO CORRECTAMENTE", vbInformation
End If
End Sub

Muchas gracias!
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

RE:tamaño archivo texto

Publicado por JuanC (243 intervenciones) el 30/10/2006 22:01:49
Falta algo importante: no sé qué es rst
Puede ser que encuentre un valor equivalente a EOF y por eso termina antes

Reescribí el código con cambios menores, te recomiendo que deshabilites
On Error Resume Next y veas si existe algún error al ejecutarlo.

Private Sub Escribir_fichero()
Dim NumFic%, filename$
Dim imp_cent%, i%
Dim domicilio$, sujeto_pas$, DNI$, Poblacion$, CP$

Set rst = acceso.FnSQL_select("select * from Expedientes where Notificacion='EJECUTIVO' And Fecha_Cierre='__/__/____' order by anio, num_exp desc")

If Not rst.EOF Then
'On Error Resume Next
NumFic = FreeFile
filename = App.Path & "\ejecutivo.txt"
NumFic = FreeFile
Open filename For Output As #NumFic

Do While Not rst.EOF
If (rst!Notificar_a = "T") Then
domicilio = Trim(rst!Domicilio_Tit)
sujeto_pas = Trim(rst!Apellidos_Tit) & " " & Trim(rst!Nombre_Tit)
DNI = rst!DNI_Titular
Poblacion = Trim(rst!Poblacion_Tit)
CP = Trim(rst!CP_Tit)
Else
domicilio = Trim(rst!Domicilio_Cond)
sujeto_pas = Trim(rst!Apellidos_Cond) & " " & Trim(rst!Nombre_Cond)
DNI = rst!DNI_Cond
Poblacion = Trim(rst!Poblacion_Cond)
CP = Trim(rst!CP_Cond)
End If

Print #NumFic,
Print #NumFic, "MS"
Print #NumFic,
Print #NumFic, "Anual"
Print #NumFic, 15305
Print #NumFic, sujeto_pas
Print #NumFic, DNI
For i = 0 To 5
Print #NumFic,
Next
Print #NumFic, domicilio
Print #NumFic,
Print #NumFic,
Print #NumFic, CP
Print #NumFic, Poblacion
Print #NumFic,
Print #NumFic, rst!cod_expediente
For i = 0 To 7
Print #NumFic,
Next
Print #NumFic, rst!Importe * 100
Print #NumFic,

rst.MoveNext
Loop

Close #Num_Fic
rst.MoveFirst
End If

If Err.Number <> 0 Then
MsgBox Err.Description
Else
MsgBox "ARCHIVO GENERADO CORRECTAMENTE", vbInformation
End If

Set rst = Nothing
End Sub

Saludos desde Baires, JuanC
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