Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

 
 
Herramientas Buscar en Tema Desplegado
  #7  
Antiguo 12-06-2020
Avatar de aguml
aguml aguml is offline
Miembro
 
Registrado: may 2013
Posts: 885
Poder: 14
aguml Va por buen camino
Así quedaría mi función de reemplazo:
Código PHP:
bool __fastcall TForm1::Replace(WideString pathBYTE *originalSIZE_T sizeOriginalBYTE *reemplazoSIZE_T sizeReemplazobool overwrite)
{
    
std::auto_ptr<TMemoryStreampmsOriginal(new TMemoryStream);
    
std::auto_ptr<TMemoryStreampmsNuevo(new TMemoryStream);

    
char c;
    
int i;
    
long pos 0;
    
bool founded false;
    
    try
    {
        
pmsOriginal->LoadFromFile(path);
        do{
            
pmsOriginal->Read(&c,1);
            if(
pmsOriginal->Position sizeOriginal <= pmsOriginal->Size){
                if(
== original[0]){
                    
pos pms->Position 1;
                    for(
i=1<= sizeOriginal; ++i){
                        
pmsOriginal->Read(&c,1);
                        if(
!= original[i])
                            break;
                    }
                    if(
== sizeOriginal){
                        
pmsNuevo->Write(reemplazo,sizeReemplazo);
                        
founded true;
                    }
                    else
                    {
                        
pmsOriginal->Seek(pos,soBeginning);
                    }
                    
pmsOriginal->Read(&c,1);

                }
            }
            
pmsNuevo->Write(&c,1);
        }while(
pmsOriginal->Position pmsOriginal->Size);

        if(
founded){
            
WideString pathDestino;
            if(
overwrite)
                
pathDestino path;
            else
                
pathDestino path.SubString(1,path.Length() - ExtractFileExt(path).Length()) + "_copia" ExtractFileExt(path);
            
pmsNuevo->SaveToFile(pathDestino);
        }
    }
    catch(...)
    {
        
ShowMessage("Streaming error.");
    }
    return 
founded;

Si piensas que debo cambiar algo soy todo oídos.
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Múltiples ejecuciones de una aplicación Angel.Matilla C++ Builder 7 27-11-2015 19:35:49
Eliminación de múltiples ficheros vía FTP (Indy) JoysticK Internet 2 15-09-2015 13:14:51
como relalizar una busqueda de ficheros con las api bastardo10 API de Windows 1 18-06-2007 13:27:50
Multiples Ventanas en una Aplicacion Nomad Varios 7 18-05-2007 22:12:28
multiples instancias de aplicación nfrfabian Varios 3 09-12-2006 14:55:17


La franja horaria es GMT +2. Ahora son las 18:07:29.


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