 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
invitado Invitado
|
Publicado: Mar 16 Mar, 2004 3:24 pm Asunto: crear txt |
|
|
desde una tabla saco los datos los cuales voy guardando en un TMemo
while(!Query->Eof)
{
Memo1->Lines->Add(Query->FieldByName("Rut")->AsString+"|"+
Query->FieldByName("nombres")->AsString+"|"+
.
.
+n);
}
Memo1->Lines->SaveToFile("c:\\archivo.txt");
Por que lo envío a un TMemo, por que no se como guardar esto directo
a un txt.
lo otro, es que separo cada datos con '|'
como puedo decirle que guarde en la misma fila:
1º dato primera columna
2º dato desde la columna 15
3º dato desde la columna 50...
para que bajan quedando ordenados y despues poder rescatar datos desde- hasta la columna que yo indique. |
|
| Volver arriba |
|
 |
Gustavo Ens

Registrado: 23 Sep 2003Mensajes: 41Ubicación: Campeche,Mexico
|
Publicado: Mar 16 Mar, 2004 3:53 pm Asunto: |
|
|
No logro entender tu pregunta paro itenta esto:
Cada vuelta que de el while almacena en una cadena cada elemento encontrado , al cual le agregas los separadores, una vez que ya concatenaste los elementos se lo vas agregando a tu TMEMO, antes de guardalo al disco verifica visualmente que los datos se almacenen como tu lo deseas, luego lo guardas.
Espero que te sirva de algo. |
|
| Volver arriba |
|
 |
invitado Invitado
|
Publicado: Mar 16 Mar, 2004 4:21 pm Asunto: |
|
|
Yo guardo primeramente los datos en un TMemo, por que no se como guardar directamente a un txt. (Evitar el TMemo)
lo otro, es que no deseo separar los datos con '|'
quiero que cada frase tenga una ubicacion inicial dada por mi.
linea:
1 21 50
111111 juan perez 10/12/1980
222222 juana perez 01/05/1971 |
|
| Volver arriba |
|
 |
Gustavo Ens

Registrado: 23 Sep 2003Mensajes: 41Ubicación: Campeche,Mexico
|
Publicado: Mar 16 Mar, 2004 5:05 pm Asunto: |
|
|
hola de nuevo:
Pedes crear una archivo de texto utilizando la libreria
#include <fstream.h>
ofstream Archivo(Cadena);
Donde
Archivo es un identificador
Cadena es el nombre de tu archivo de texto
Para almacenar la informacion es con <<
Puedes ver an la ayuda de builder solo escribe OFSTREAM
Espero que te sirva. ah para el espacio creo que puedes manejar un poco de cadenas #include <string.h>, entra a la ayuda en la cual te describen cada una de las funciones.
[/code] |
|
| Volver arriba |
|
 |
Tugui Master


Registrado: 09 Nov 2002Mensajes: 663
|
Publicado: Mar 16 Mar, 2004 6:29 pm Asunto: |
|
|
Yo personalmente prescindiría del TMemo y crearía un nuevo objeto de la clase TStringList:
TStringList *lista = new TStringList();
while(!Query->Eof)
{
lista->Add(Query->FieldByName("Rut")->AsString+"|"+
Query->FieldByName("nombres")->AsString;
}
lista->SaveToFile("c:\\archivo.txt");
delete lista;
/*Si en lugar de "|" pusieras "\t" insertarías un tabulador y... en fin la filas son totalmente modificables con unos ligeros retoques.*/ _________________ ¡ADELANTE CON ESTE SUPER FORO! |
|
| Volver arriba |
|
 |
invitado Invitado
|
Publicado: Jue 18 Mar, 2004 1:47 pm Asunto: |
|
|
Tugui
gracias por tu ayuda, pude sulucionar la primera parte de mi problema.
Pero necesito solucionar que las columnas dentro del txt lleven el mismo
orden.
Sucede que dentro de una red tengo un sistema de pago de licencias de
conducir. Pero con este mismo programa salen a terreno. Donde despues
estos pagos los llevan a un archivo txt para pasarlos al servidor central.
En el txt las columnas estan formadas por placa, rut, contribuyente ,.., etc.
=> yo quiero que tome desde 0 a 20 caracteres como placa, desde 25 a
35 como rut y así sucesivamente. |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Jue 18 Mar, 2004 5:38 pm Asunto: |
|
|
Utiliza una estructura de datos. Supon por ejemplo que tienes tres campos:
| Código: | #include <mem.h>
#include <string.h>
#include <stdio.h>
struct Linea {char Campo1[4],Campo2[12],Campo3[6];} Linea;
char cTemp[13] = "\0";
FILE *fFile;
fFile = fopen("MiFichero.txt", "wb+");
while (!Table1->Eof)
{
memset(Linea.Campo1, '\0', 22); // Incializo variable
spritnf(cTemp, "% 4s", Table1->FieldByName("Campo1")->AsString);
strcpy(Linea.Campo1, cTemp);
sprintf(cTemp, "% 12s", Table1->FieldByName("Campo2")->AsString);
strcpy(Linea.Campo2, cTemp);
sprintf(cTemp, "%06d", 100 * Table1->FieldByName("Campo2")->AsInteger);
strcpy(Linea.Campo3, cTemp);
fwrite(&Linea, sizeof(Linea), 1, fFile);
Table1->Next();
}
fclose(fFile); |
_________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|