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

Problemas con espacios para fichero txt

Estas en el tema de Problemas con espacios para fichero txt en el foro de Visual Basic clásico en Foros del Web. Hola , a la hora de generar una factura tengo que crear 3 apuntes en un fichero contable,de la siguiente manera: 4300000001Factura nº:25/08 321 D ...
  #1 (permalink)  
Antiguo 04/06/2008, 12:29
 
Fecha de Ingreso: abril-2008
Mensajes: 20
Antigüedad: 16 años
Puntos: 0
Problemas con espacios para fichero txt

Hola , a la hora de generar una factura tengo que crear 3 apuntes en un fichero contable,de la siguiente manera:

4300000001Factura nº:25/08 321 D
4700000000Factura nº:25/08 21 H
7000000000Factura nº:25/08 300 H

El problema es el siguiente , queremos que empiezen todos los datos siempre a la misma altura , es decir si meto un importe que es mayor que otro no quede descuadrado y empieze antes lo siguiente,es decir que no pase esto:

430000002Factura nº:1/08 25,36 D
477000000Factura nº:1/08 1,66 H
700000000Factura nº:1/08 23,7 H

Aqui se puede ver como h empieza antes que d en la 470000 , pues quiero que empiece a la misma altura. ¿Como lo podria solucionar? Una manera seria con el tab pero como lo podria hacer para ajustarlo. Aqui os dejo el codigo de como hago los apuntes en el fichero :

file = FreeFile

numcliente = 430000000 + cliente

Open App.path & "\contable.txt" For Append As #file
Print #file, numcliente & "Factura " & "nº:" & bdempresa("ult_num_fac") & "/" & Right(Date, 2) & " " & Round(baseimpo + iva, 2) & " D"
Print #file, Tab(1), "477000000" & "Factura " & "nº:" & bdempresa("ult_num_fac") & "/" & Right(Date, 2) & " " & Round(iva, 2) & " H"
Print #file, Tab(1); "700000000" & "Factura " & "nº:" & bdempresa("ult_num_fac") & "/" & Right(Date, 2) & " " & CDbl(baseimpo) & " H"
Close #file



Muchas gracias
  #2 (permalink)  
Antiguo 04/06/2008, 12:51
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Problemas con espacios para fichero txt

Mi idea es hacerlo así:
Código:
Function GetLen(ParamArray Text() As Variant) As Integer
Dim Looping As Integer
Dim vLen As Integer
For Looping = 0 To UBound(Text)
    If Len(Text(Looping)) > vLen Then vLen = Len(Text(Looping))
Next Looping
GetLen = vLen
End Function
Código:
 
Dim vLen As Integer
vLen = GetLen(Round(baseimpo + iva, 2) & " D", Round(iva, 2) & " H", CDbl(baseimpo) & " H")
Open App.path & "\contable.txt" For Append As #file
Print #file, numcliente & "Factura " & "nº:" & bdempresa("ult_num_fac") & "/" & Right(Date, 2) & Right(String(vLen + 1, " ") & Round(baseimpo + iva, 2) & " D", vLen + 1)
Print #file, Tab(1), "477000000" & "Factura " & "nº:" & bdempresa("ult_num_fac") & "/" & Right(Date, 2) & Right(String(vLen + 1, " ") & Round(iva, 2) & " H", vLen + 1)
Print #file, Tab(1); "700000000" & "Factura " & "nº:" & bdempresa("ult_num_fac") & "/" & Right(Date, 2) & Right(String(vLen + 1, " ") & CDbl(baseimpo) & " H", vLen + 1)
Close #file
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 04/06/2008, 13:17
 
Fecha de Ingreso: abril-2008
Mensajes: 20
Antigüedad: 16 años
Puntos: 0
Respuesta: Problemas con espacios para fichero txt

Muchas gracias por el codigo . ¿A la funcion no hace falta llamarla?Voy a probarlo haber.
  #4 (permalink)  
Antiguo 04/06/2008, 13:21
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
De acuerdo Respuesta: Problemas con espacios para fichero txt

Cita:
Iniciado por pradejon Ver Mensaje
Muchas gracias por el codigo . ¿A la funcion no hace falta llamarla?Voy a probarlo haber.
Aquí la llamamos:
Código:
Dim vLen As Integer
vLen = GetLen(Round(baseimpo + iva, 2) & " D", Round(iva, 2) & " H", CDbl(baseimpo) & " H")
Espero que te sirva .
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 04/06/2008, 13:24
 
Fecha de Ingreso: abril-2008
Mensajes: 20
Antigüedad: 16 años
Puntos: 0
Respuesta: Problemas con espacios para fichero txt

Si me ha servido muchas gracias pero mira he hecho unas facturas y mira como queda el apunte:

430000002Factura nº:23/08 0 D
477000000Factura nº:23/08 0 H
700000000Factura nº:23/08 0 H
430000004Factura nº:24/08 0 D
477000000Factura nº:24/08 0 H
700000000Factura nº:24/08 0 H


La 477 no se ajusta ,¿como la cambio?
  #6 (permalink)  
Antiguo 04/06/2008, 13:29
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Pregunta Respuesta: Problemas con espacios para fichero txt

Cita:
Iniciado por pradejon Ver Mensaje
Si me ha servido muchas gracias pero mira he hecho unas facturas y mira como queda el apunte:

430000002Factura nº:23/08 0 D
477000000Factura nº:23/08 0 H
700000000Factura nº:23/08 0 H
430000004Factura nº:24/08 0 D
477000000Factura nº:24/08 0 H
700000000Factura nº:24/08 0 H


La 477 no se ajusta ,¿como la cambio?
No entiendo, ¿qué es lo que no se ajusta?. Yo lo veo todo ajustado.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 04/06/2008, 14:23
 
Fecha de Ingreso: abril-2008
Mensajes: 20
Antigüedad: 16 años
Puntos: 0
Respuesta: Problemas con espacios para fichero txt

Perdona , que lo he escrito mal. Esto es lo que ocurre:

430000002Factura nº:34/08 188,11 D
477000000Factura nº:34/08 12,31 H
700000000Factura nº:34/08 175,8 H


Nose si saldra pero esque la 477 empieza en la mitad,nose si lo podras ver
  #8 (permalink)  
Antiguo 04/06/2008, 14:30
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Pregunta Respuesta: Problemas con espacios para fichero txt

Cita:
Iniciado por pradejon Ver Mensaje
Perdona , que lo he escrito mal. Esto es lo que ocurre:

430000002Factura nº:34/08 188,11 D
477000000Factura nº:34/08 12,31 H
700000000Factura nº:34/08 175,8 H


Nose si saldra pero esque la 477 empieza en la mitad,nose si lo podras ver
Qué raro. ¿Estás usando el código que te puse?. Pues según el código, debería agregar un espacio a las dos últimas líneas ya que la función Len devolverá 8. Entonces agregará 8 espacios a la segunda por lo que quedaría, "---------12,31 H", luego extraerá los 9 caracteres de la derecha, por lo que debería extraer "--12,31 H". ¿En las demás partes funciona?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #9 (permalink)  
Antiguo 04/06/2008, 14:59
 
Fecha de Ingreso: abril-2008
Mensajes: 20
Antigüedad: 16 años
Puntos: 0
Respuesta: Problemas con espacios para fichero txt

en las demas si, en la 470000 y en la 7000 si.
  #10 (permalink)  
Antiguo 04/06/2008, 15:02
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Respuesta: Problemas con espacios para fichero txt

Cita:
Iniciado por pradejon Ver Mensaje
en las demas si, en la 470000 y en la 7000 si.
Realmente muy extraño .
Intenta ejecutar paso a paso con los datos que tienen problemas y ve qué sucede. ¿Cuál es el valor que devuelve GetLen? ¿Es el mayor de los 3 valores?. También, al ejecutar escribe el Right en la ventana inmediato para saber si te está devolviendo los espacios como debería.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #11 (permalink)  
Antiguo 04/06/2008, 15:25
 
Fecha de Ingreso: abril-2008
Mensajes: 20
Antigüedad: 16 años
Puntos: 0
Respuesta: Problemas con espacios para fichero txt

Nose cual es el error , lo he probado paso a paso y no lo encuentro , no tengo ni idea pero eso ela 477 empieza mas o menos en la mitad.
  #12 (permalink)  
Antiguo 04/06/2008, 15:27
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Respuesta: Problemas con espacios para fichero txt

Cita:
Iniciado por pradejon Ver Mensaje
Nose cual es el error , lo he probado paso a paso y no lo encuentro , no tengo ni idea pero eso ela 477 empieza mas o menos en la mitad.
¿Tienes una sola función para guardar los datos en el archivo o tienes varias? Porque si tienes varias es posible que en una de ellas no hayas implementado el código para ajustar las columnas.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #13 (permalink)  
Antiguo 04/06/2008, 15:32
 
Fecha de Ingreso: abril-2008
Mensajes: 20
Antigüedad: 16 años
Puntos: 0
Respuesta: Problemas con espacios para fichero txt

Tengo varias dependiendo si la factura es automatica y agrupa , si la factura es automatica y no agrupa , y si la factura es manual y agrupa o no agrupa.

Pero en los 4 procesos al terminar de hacer la factura hago siempre el mismo proceso para guardar los datos en el fichero contable.
  #14 (permalink)  
Antiguo 04/06/2008, 15:35
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Respuesta: Problemas con espacios para fichero txt

Cita:
Iniciado por pradejon Ver Mensaje
Tengo varias dependiendo si la factura es automatica y agrupa , si la factura es automatica y no agrupa , y si la factura es manual y agrupa o no agrupa.

Pero en los 4 procesos al terminar de hacer la factura hago siempre el mismo proceso para guardar los datos en el fichero contable.
Muéstranos todas tus funciones (o por lo menos la que te está dando problemas), así podremos intentar solucionar el problema.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #15 (permalink)  
Antiguo 04/06/2008, 15:37
 
Fecha de Ingreso: abril-2008
Mensajes: 20
Antigüedad: 16 años
Puntos: 0
Respuesta: Problemas con espacios para fichero txt

file = FreeFile

numcliente = 430000000 + cliente

vLen = GetLen(Round(baseimpo + iva, 2) & " D", Round(iva, 2) & " H", CDbl(baseimpo) & " H")
Open App.path & "\contable.txt" For Append As #file
Print #file, numcliente & "Factura " & "nº:" & bdempresa("ult_num_fac") & "/" & Right(Date, 2) & Right(String(vLen + 1, " ") & Round(baseimpo + iva, 2) & " D", vLen + 1)
Print #file, Tab(1), "477000000" & "Factura " & "nº:" & bdempresa("ult_num_fac") & "/" & Right(Date, 2) & Right(String(vLen + 1, " ") & Round(iva, 2) & " H", vLen + 1)
Print #file, Tab(1); "700000000" & "Factura " & "nº:" & bdempresa("ult_num_fac") & "/" & Right(Date, 2) & Right(String(vLen + 1, " ") & CDbl(baseimpo) & " H", vLen + 1)
Close #file




Function GetLen(ParamArray Text() As Variant) As Integer
Dim Looping As Integer
Dim vLen As Integer
For Looping = 0 To UBound(Text)
If Len(Text(Looping)) > vLen Then vLen = Len(Text(Looping))
Next Looping
GetLen = vLen
End Function
  #16 (permalink)  
Antiguo 04/06/2008, 15:50
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Respuesta: Problemas con espacios para fichero txt

Coloca esto en el código y mira si te coloca los espacios o no:
Código:
 
Dim Text As String
Text = Right(String(vLen + 1, " ") & Round(baseimpo + iva, 2) & " D", vLen + 1)
Text = Text & vbCrLf & Right(String(vLen + 1, " ") & Round(iva, 2) & " H", vLen + 1)
Text = Text & vbCrLf & Right(String(vLen + 1, " ") & CDbl(baseimpo) & " H", vLen + 1)
MsgBox Text
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.

Última edición por David; 04/06/2008 a las 16:09
  #17 (permalink)  
Antiguo 04/06/2008, 15:59
 
Fecha de Ingreso: abril-2008
Mensajes: 20
Antigüedad: 16 años
Puntos: 0
Respuesta: Problemas con espacios para fichero txt

Lo coloco al principio?
  #18 (permalink)  
Antiguo 04/06/2008, 16:01
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Respuesta: Problemas con espacios para fichero txt

Cita:
Iniciado por pradejon Ver Mensaje
Lo coloco al principio?
Después de llamar a GetLen...
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #19 (permalink)  
Antiguo 04/06/2008, 16:06
 
Fecha de Ingreso: abril-2008
Mensajes: 20
Antigüedad: 16 años
Puntos: 0
Respuesta: Problemas con espacios para fichero txt

Me ha devuelto esto:

D
08H
H
  #20 (permalink)  
Antiguo 04/06/2008, 16:11
 
Fecha de Ingreso: abril-2008
Mensajes: 20
Antigüedad: 16 años
Puntos: 0
Respuesta: Problemas con espacios para fichero txt

He probado con otro despues de llamar a la funcion me devuelve esto:

0 D
08 0 H
0 H
  #21 (permalink)  
Antiguo 04/06/2008, 16:12
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Respuesta: Problemas con espacios para fichero txt

Cita:
Iniciado por pradejon Ver Mensaje
Me ha devuelto esto:

D
08H
H
¿Dónde lo estás colocando?, coloca al final de todo (copia de nuevo el código porque escribí mal). Si no muestra correctamente los datos no sé qué pueda ser ya que no tengo el código completo para verificarlo (podrías subirlo a algún sitio y colocar el enlace aquí para que podamos descargarlo y mirar cuál es el problema).
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
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:31.