Foros del Web » Programando para Internet » ASP Clásico »

Crear un TXT para imprimirlo

Estas en el tema de Crear un TXT para imprimirlo en el foro de ASP Clásico en Foros del Web. Buenas, estoy haciendo un script que me cree un txt para luego imprimirlo. La longitud de cada línea será de 80 caracteres y yo lo ...
  #1 (permalink)  
Antiguo 08/02/2006, 10:04
Avatar de josemari11  
Fecha de Ingreso: agosto-2004
Ubicación: Fuenlabrada (Madrid)
Mensajes: 95
Antigüedad: 19 años, 9 meses
Puntos: 0
Pregunta Crear un TXT para imprimirlo

Buenas, estoy haciendo un script que me cree un txt para luego imprimirlo.

La longitud de cada línea será de 80 caracteres y yo lo que quiero es imprimir línea por línea, de forma que me quede así (imaginad el valor de la variable en cada linea):

VARIABLE_1 ---- TOTALGUIONES=(80 - (longitud_variable_1+longitud_fecha)) ---- FECHA

El problema no está en el length ni en concatenar, sino en sí hay alguna función que haga lo contrario a trim y sus variantes, es decir, que rellene de CARACTER hasta la longitud indicada.

Muchas gracias.
  #2 (permalink)  
Antiguo 08/02/2006, 10:32
Avatar de ElAprendiz  
Fecha de Ingreso: enero-2002
Ubicación: Maipu, Chile
Mensajes: 3.706
Antigüedad: 22 años, 4 meses
Puntos: 2
vbtab ? .
__________________
Manual de ASP Avanzado ;-)
  #3 (permalink)  
Antiguo 08/02/2006, 11:04
Avatar de josemari11  
Fecha de Ingreso: agosto-2004
Ubicación: Fuenlabrada (Madrid)
Mensajes: 95
Antigüedad: 19 años, 9 meses
Puntos: 0
Sí, pero no, no es eso lo que busco, lo que busco es no hacer un dowhile para concatenar a la cadena X guiones.

A ver, lo que estoy haciendo es un txt con un presupuesto en el que tengo los siguientes campos:
Primera parte: Nº presupuesto y fecha
======= (linea de 80 simbolos de igual)
nombre, apellidos, nif, direccion, cp, poblacion, provincia, telefono, forma de pago y empleado que atendió
--------- (linea de 80 guiones)
Nº de linea - Codigo - Descripcion - Unidades - Precio
y aquí las líneas... de forma que el precio quedaría alineado a la derecha siendo el ultimo digito de los decimales el caracter 80 de cada linea.

No sé si me he explicado. El problema está en que para cada línea es un mundo. Ejemplo

Presupuesto NºX.......................FECHA: dd/mm/yyyy
======================== ... ==========================
DATOS DEL CLIENTE
-----------------
Nombre: apellido, nombre
Direccion: direccion.....................NIF: 01234567A
RESTO DE DATOS

======================== ... ==========================

.L..Cod.......Descripcion.................. Unid....PVP
.1..COD01234..Descripcion del articulo tal.... 1..15,25
.2..COD01235..Descripcion del articulo tal 2 .11...5,25


Sería algo así lo que ando buscando. Muchas gracias por la ayuda.
  #4 (permalink)  
Antiguo 08/02/2006, 11:14
Avatar de 3pies
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Desde una destilería
Mensajes: 2.584
Antigüedad: 20 años, 6 meses
Puntos: 144
Prueba con esto (lo acabo de hacer ahora, pero puedes meterlo en una función):

Código:
largo = 80
cadena = "Probando"
If Len(cadena) > largo Then
    'si la cadena ocupa más de 80 caracteres, la cortamos
    'y dejamos solo los primeros 80 caracteres
    cadena = Mid(cadena, 1, largo)
ElseIf Len(cadena) < largo Then
    'añadimos puntos hasta completar una cadena con 80 caracteres
    cadena = cadena & String(largo - Len(cadena), ".")
End If
Response.write cadena
El problema que tendrás es, que una línea con 80 caracteres, puede no ocupar todo el ancho de la línea, y en cambio otra línea sí. Me explico: hay letras que no ocupan el mismo espacio, por ejemplo, la "a" es más ancha que la "i", y por tanto, con menos letras "a", rellenarás el mismo espacio que ocuparías con más "i".

Última edición por 3pies; 08/02/2006 a las 11:21
  #5 (permalink)  
Antiguo 08/02/2006, 11:16
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 18 años, 5 meses
Puntos: 7
Bueno, para rellenar con caracteres en ASP tienes dos fuciones predefinidas:

Space(numero) --> rellena de espacios un numero de veces
String(numero, caracter) --> rellena con caracter un numero de veces


No se si es lo que querías....




Un saludo

EDIT: Mira el post anterior que está la respuesta (vamos, que me he colao )
  #6 (permalink)  
Antiguo 08/02/2006, 11:17
Avatar de ElAprendiz  
Fecha de Ingreso: enero-2002
Ubicación: Maipu, Chile
Mensajes: 3.706
Antigüedad: 22 años, 4 meses
Puntos: 2
mmhh. creo entendi un poco mas

quieres hacer algo asi?

juan.......................martes <-80 lineas
pablito................miercoles <- 80 lineas

o sea rellenar con x caracter (en este caso puse puntos) para que te de las 80 columnas?

para eso usa string (numero, caracter)
__________________
Manual de ASP Avanzado ;-)
  #7 (permalink)  
Antiguo 09/02/2006, 03:01
Avatar de josemari11  
Fecha de Ingreso: agosto-2004
Ubicación: Fuenlabrada (Madrid)
Mensajes: 95
Antigüedad: 19 años, 9 meses
Puntos: 0
¿No hay ninguna función que inserte valores en un string desde una posición determinada? Es decir, yo quiero insertar el codigo del articulo a partir de la posicion 4 de 80, la descripcion a partir del 13 de 80, y así...

Gracias.
  #8 (permalink)  
Antiguo 09/02/2006, 03:48
Avatar de josemari11  
Fecha de Ingreso: agosto-2004
Ubicación: Fuenlabrada (Madrid)
Mensajes: 95
Antigüedad: 19 años, 9 meses
Puntos: 0
Bueno, mediante muchas funciones string he logrado hacer el documento txt, ahora lo que quiero es que según se hace, se mande a imprimir y luego lo elimino (para no ocupar espacio en disco). ¿Se puede hacer esto? ¿Alguna forma para ello?

Gracias.
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 20:51.