 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
baader Cdt

Registrado: 30 Oct 2002Mensajes: 16
|
Publicado: Mar 06 May, 2003 6:23 pm Asunto: WriteFile se me resiste. |
|
|
Saludos.
Estoy utilizando la función CreateFile para la creación y apertura de
archivos, el problema reside en la función afín para escribir datos:
-> WriteFile <-
No logro escribir nada en el archivo que creo.
No encuentro ejemplos claros que me ayuden a entender porque
no lo hago bien. Si conoces una buena dirección donde haya ejemplos SENCILLOS y CLAROS por favor, hazmelo saber.
Otra cuestión; después de conseguir este objetivo me gustaría saber
como guardar en el archivo estructuras complejas para leerlas
posteriormente de una sóla vez.
Por último, igual que algunos componentes builder tienen la opción de
ser directamente guardados en un archivo con el método SaveToFile,
me gustaría saber si existe la manera de guardar varios componentes
por ejemplo varios TImage en UN SOLO ARCHIVO.
Muchas gracias por la atención. Saludos a todos. |
|
| Volver arriba |
|
 |
Alfredo Invitado
|
Publicado: Sab 10 May, 2003 8:36 pm Asunto: FileCreate, FileWrite |
|
|
El ejemplo a continuacion utiliza un boton, una StringGrid, y un SaveDialog en un form, Al pulsar el boton se solicita un nombre de archivo al aceptar los contenidos del StringGrid son escritos al archivo, informacion adicional es tambien grabada para facilitar la reconstruccion del grid con la funcion FileRead ademas si el archivo existiese se hara una copia de seguridad .bak de este.
Este ejemplo creo debe resultarte suficientemente ilustrativo, y pon atencion: es FileWrite no WriteFile (Talvez esto sea la causa)
#include <dir.h>
void __fastcall TForm1::Button1Click(TObject *Sender)
{
char szFileName[MAXFILE+4];
int iFileHandle;
int iLength;
if (SaveDialog1->Execute())
{
if (FileExists(SaveDialog1->FileName))
{
fnsplit(SaveDialog1->FileName.c_str(), 0, 0, szFileName, 0);
strcat(szFileName, ".BAK");
RenameFile(SaveDialog1->FileName, szFileName);
}
iFileHandle = FileCreate(SaveDialog1->FileName);
// Write out the number of rows and columns in the grid.
FileWrite(iFileHandle, (char*)&(StringGrid1->ColCount), sizeof
(StringGrid1->ColCount));
FileWrite(iFileHandle, (char*)&(StringGrid1->RowCount), sizeof
(StringGrid1->RowCount));
for (int x=0;x<StringGrid1->ColCount;x++)
{
for (int y=0;y<StringGrid1->RowCount;y++)
{
// Write out the length of each string, followed by the string itself.
iLength = StringGrid1->Cells[x][y].Length();
FileWrite(iFileHandle, (char*)&iLength, sizeof
(iLength));
FileWrite(iFileHandle, StringGrid1->Cells[x][y].c_str(), StringGrid1->Cells[x][y].Length());
}
}
FileClose(iFileHandle);
}
} |
|
| 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.
|