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 

WriteFile se me resiste.

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: WriteFile se me resiste. Responder citando

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

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
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.