Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Problemas al escribir en un archivo (https://www.clubdelphi.com/foros/showthread.php?t=92703)

aguml 08-01-2018 10:39:57

Problemas al escribir en un archivo
 
Hola amigos, estoy intentando crearme una funcion que escriba en la posicion deseada de un archivo y para ello he probado esto:
Código PHP:

void SendToFile (bytesentenceint sizeuint32_t poschar *path) {
    
std::ofstream ostr (path);
    if (
ostr) {
        
std::streambuf pbuf ostr.rdbuf();
        
//Aqui obtengo el tamaño del archivo
        
std::streamsize sizeStream pbuf->pubseekoff(0ostr.end);
        
//Me posiciono en el lugar donde quiero escribir en el archivo
        
pbuf->pubseekoff(posostr.beg);
        
//Escribo lo que quiero en el archivo usando el stream
        
pbuf->sputn (sentence,size);
        
ostr.close();
    }


Y tambien esto:
Código PHP:

void SendToFile (bytesentenceint sizeuint32_t poschar *path) {
    
std::ofstream ostr (path);
    if (
ostr) {
        
//Obtengo el tamaño del archivo
        
ostr.seekp(0,ios_base::end);
        
int size_file=ostr.tellp();
        
//Me posiciono en la posicion del archivo donde quiero escribir
        
ostr.seekp(pos,ios_base::beg);
        
//Escribo en el archivo lo que quiero
        
ostr.write(sentence,size);
        
ostr.close();
    }


En ambos casos el tamaño del archivo que obtengo es 0 pero no lo es aunque cuando escribo en el si que obtengo un archivo en el que solo está lo que he escrito. ¿Alquien me puede ayudar?

_Leo 09-01-2018 23:32:54

Para poder escribir en una posición concreta de un archivo existente sin que se trunque como es el caso, tendrías que abrirlo del siguiente modo:

Código PHP:

std::ofstream ostr(pathstd::ios::in std::ios::out std::ios::binary); 



La franja horaria es GMT +2. Ahora son las 11:09:55.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi