Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

crear txt

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: crear txt Responder citando

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
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado MSN Messenger
Mensaje    Asunto: Responder citando

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
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado MSN Messenger
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado Enviar email
Mostrar mensajes de anteriores:   
Cambiar a:  
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


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.