Ver Mensaje Individual
  #11 (permalink)  
Antiguo 03/09/2008, 17:26
Avatar de Txoco
Txoco
 
Fecha de Ingreso: junio-2008
Ubicación: Perdido en tierras Quijotescas
Mensajes: 189
Antigüedad: 16 años, 11 meses
Puntos: 7
Respuesta: ayuda para mi proyecto (txtmaker)

Hola!

Primero, en el fichero que vayas a utilizar como plantilla, establece un formato de secuencia de escape para identificar cada campo. Por ejemplo, donde tú pongas "%artista%" debe ser sutituído por el contenido de la textbox del artista. La línea en el fichero quedaría así:

Código:
█▀▄▄██▀▀            ARTiST: %artista%▀▀██▄▄▀█
(observa que no hay espacios desde "%artista%" hasta los caracteres que representarían el marco del dibujo ASCII)

Y ahora tienes que:

- Dividir el contenido del fichero (ya cargado en memoria) en un array de líneas, utilizando la función Split, por ejemplo.
- Recorrer el array buscando, en cada línea, todas las secuencias de escape que hayas definido ("%artista%", "%titulo%", etc), utilizando InStr para saber si está, y si está, en qué posición. Si resulta que una secuencia está (Resultado de InStr > 0), sustitúyelo utilizando Replace así:

Código:
    Replace(arraylineas[numerolinea], "%artista%", <nombre del artista> & String(80 - len(arraylineas[numerolinea]) - len(<nombre del artista>), " "))
Esto te sustituye "%artista%" por el nombre del artista que le pongas y el número de espacios necesarios para que la línea completa tenga 80 caracteres, que es el standard para ficheros de texto plano ASCII. Si quieres otra cantidad, define una constante para ello, o una variable que puedas configurar en la interfaz.

Evidentemente, requieres algo más de código porque:
- Si el nombre de un campo supera el espacio disponible, te saltará un error (la función String intentará crear un número negativo de caracteres), aunque supongo que ese error será interceptable.
- Se puede optimizar para sustituir "Len("%artista%")" por una constante o un precálculo.

Pero eso te dejo que lo diseñes tú
__________________
wile sona li mute e sona