FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Stringgrid a txt//imprimir texto en el form
Hola quisiera saber cómo puedo pasar el contenido de un string grid a un documento de texto o a una nueva ventana sin columnas ni filas...
Y para ello también quiero saber cómo puedo hacer que las letras aparezcan directamente en el form... Gracias |
#2
|
||||
|
||||
Todo depende de cómo quieras presentar los datos. Vamos a suponer que tu StringGrid se ve así:
Código:
+----+---------+-----------------------------------+--+ |0001|049730450|GONZALEZ Y GARCIA LUIS GERMAN | 5| +----+---------+-----------------------------------+--+ |0002|056001213|LAGUIRENNE Y CASTILLO JORGE ARMANDO| 8| +----+---------+-----------------------------------+--+ |0003|056039483|VEGA ROLDAN OSCAR |10| +----+---------+-----------------------------------+--+ |0004|057062998|ELORDUY ELORDUY AMALIA | 7| +----+---------+-----------------------------------+--+ |0005|058026887|KAMICHIKA Y KOHASHI YOSHINO | 8| +----+---------+-----------------------------------+--+ Código:
0001,049730450,GONZALEZ Y GARCIA LUIS GERMAN,5 0002,056001213,LAGUIRENNE Y CASTILLO JORGE ARMANDO,8 0003,056039483,VEGA ROLDAN OSCAR,10 0004,057062998,ELORDUY ELORDUY AMALIA,7 0005,058026887,KAMICHIKA Y KOHASHI YOSHINO,8 Código:
0001 049730450 GONZALEZ Y GARCIA LUIS GERMAN 5 0002 056001213 LAGUIRENNE Y CASTILLO JORGE ARMANDO 8 0003 056039483 VEGA ROLDAN OSCAR 10 0004 057062998 ELORDUY ELORDUY AMALIA 7 0005 058026887 KAMICHIKA Y KOHASHI YOSHINO 8 En todos los casos te puedes valer de la función Format. Vamos a suponer que presentas la información en un Memo. El primer caso (datos separados por comas) lo haces así:
El primer parámetro de Format indica el formato para presentra los datos y en el segundo se especifican los datos en sí. En la cadena de formato, %s significa que el dato es una cadena de caracteres y %d que es un número entero. Para el segundo caso (columnas de ancho fijo), el código es el mismo pero sustituyendo la cadena de formato por:
que igualmente indica que hay cuatro datos, tres son cadenas de caracteres y el último un número entero. Pero aquí, los modificadores entre % y s (o % y d) indican el ancho de la columna (5, 10, 36 y 2). El signo - indica que los datos deben presentarse alineados a la izquierda mientras que si no se pone significa que los datos van alineados a la derecha, como en la última columna. Para que esto funcione bien, los anchos de las columnas deben ser por lo menos tanto como la longitud máxima del dato. Es decir, si un nombre (tercera columna) ocupa más de 35 caracteres se romperá el formato (puse 36 y no 35 para garantizar un espacio en blanco entre columnas). Si quieres presentar los datos simulando un grid (tal como lo puse al principio) basta cambiar fmtLinea por:
En este caso, simplemente hay que añadir la línea divisoria entre cada dos líneas:
Claro que aquí los ejemplos está aplicados a datos estáticos. Para hacerlo con el StringGrid simplemente tienes que procesar cada línea con un ciclo:
Aunque aquí, como todos los datos del StringGrid son cadenas de caracteres deberás susituir %d por %s en el último campo. Finalmente, puedes sustituir Memo1.Lines por un TStringList y usar su método SaveToFile para guardar en un archivo. Lo de escribir los datos directamente en el formulario supongo que te referías a algo como el Memo. Ahora que, si realmente quieres escribir los datos directamente en el formulario, también puedes hacerlo. Preparas cada línea igual que antes y usas el método TextOut del Canvas del formulario. // Saludos |
#3
|
||||
|
||||
Se me olvidaba algo muy importante.
En el caso de columnas de ancho fijo, para que los datos se presenten correctamente en el Memo (o en el formulario), es imprescindible que uses una fuente de ancho constante como Courier New. // Saludos |
|
|
|