Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-07-2007
Delar Delar is offline
Miembro
 
Registrado: oct 2006
Posts: 90
Poder: 18
Delar Va por buen camino
Error en codigo

Bien, este codigo lo encontré buscando por el foro, y al ejecutarlo me da un error :S
Aquí el codigo:
Código Delphi [-]
procedure AddToStream(AFileName: TFileName);
  var
    fsOrigen,fsDestino: TFileStream;
  begin
    fsOrigen := TFileStream.Create(AFileName, fmOpenRead);
    Try
      fsDestino.CopyFrom(fsOrigen, fsOrigen.Size);
    finally
      fsOrigen.Free;
    end;
  end;
------------------------------------------------
procedure TForm1.Button1Click(Sender: TObject);
var
  fsDestino: TFileStream;
begin
  fsDestino := TFileStream.Create('C:\MIEXE.EXE', fmCreate);
  Try
    AddToStream('C:\WINDOWS\SYSTEM32\CMD.EXE');
    AddToStream('C:\WINDOWS\NOTEPAD.EXE');
  finally
    fsDestino.Free;
  end;
  WinExec('C:\MIEXE.EXE', SW_SHOW);
end;
El error es:
"Stream write error"
Alguna solución?
Responder Con Cita
  #2  
Antiguo 26-07-2007
Delar Delar is offline
Miembro
 
Registrado: oct 2006
Posts: 90
Poder: 18
Delar Va por buen camino
OK, ya lo solucioné poniendo la variable fsDestino como publica.

Saludos!
Responder Con Cita
  #3  
Antiguo 26-07-2007
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.933
Poder: 27
delphi.com.ar Va por buen camino
Cita:
Empezado por Delar
OK, ya lo solucioné poniendo la variable fsDestino como publica.
Me ganaste de mano, igualmente mi respuesta puede servirte para evitar el uso de variables públicas.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #4  
Antiguo 26-07-2007
Delar Delar is offline
Miembro
 
Registrado: oct 2006
Posts: 90
Poder: 18
Delar Va por buen camino
Jeje, igualmente gracias
Y separé el codigo, porque me daba error si habia una procedure dentro de otra.

Saludos!
Responder Con Cita
  #5  
Antiguo 26-07-2007
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.933
Poder: 27
delphi.com.ar Va por buen camino
Cita:
Empezado por Delar
Jeje, igualmente gracias
Y separé el codigo, porque me daba error si habia una procedure dentro de otra.
¿Qué compilador estas usando?
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #6  
Antiguo 26-07-2007
Delar Delar is offline
Miembro
 
Registrado: oct 2006
Posts: 90
Poder: 18
Delar Va por buen camino
Delphi 7 pero nunca me habia pasado eso :S
Responder Con Cita
  #7  
Antiguo 26-07-2007
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.933
Poder: 27
delphi.com.ar Va por buen camino
Esa es mi letra!
En el código original el procedimiento AddToStream pertenecía al procedimiento TForm1.Button1Click. Tu lo separaste y creaste una nueva variable "fsDestino" que nunca se crea. Si quieres mantenerlo separado podrías hacer algo como:
Código Delphi [-]
procedure AddToStream(AFileName: TFileName; fsDestino: TFileStream);
var
  fsOrigen: TFileStream;
begin
  fsOrigen := TFileStream.Create(AFileName, fmOpenRead);
  Try
    fsDestino.CopyFrom(fsOrigen, fsOrigen.Size);
  finally
    fsOrigen.Free;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  fsDestino: TFileStream;
begin
  fsDestino := TFileStream.Create('C:\MIEXE.EXE', fmCreate);
  Try
    AddToStream('C:\WINNT\SYSTEM32\CMD.EXE', fsDestino);
    AddToStream('C:\WINNT\NOTEPAD.EXE', fsDestino);
  finally
    fsDestino.Free;
  end;
  WinExec('C:\MIEXE.EXE', SW_SHOW);
end;

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
Respuesta



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
Error al imprimir codigo de barra ErenioDhG Impresión 0 08-03-2007 18:50:42
Error en codigo, ¿como lo arreglo? jorgegetafe Varios 8 13-02-2007 16:02:30
Ayuda con error en codigo :-( jorgegetafe Varios 6 07-02-2007 19:29:04
error en el codigo pepelu1975 OOP 10 12-02-2004 13:01:03
Obtener el Codigo de Error En DBexpres lgluna Conexión con bases de datos 0 23-05-2003 17:57:26


La franja horaria es GMT +2. Ahora son las 20:59:11.


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
Copyright 1996-2007 Club Delphi