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.932
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
  #4  
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.932
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
  #5  
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
  #6  
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.932
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
  #7  
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
  #8  
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.932
Poder: 27
delphi.com.ar Va por buen camino
Cita:
Empezado por Delar
Delphi 7 pero nunca me habia pasado eso :S
Teóricamente te debería funcionar el código original. Teniendo en cuenta que al procedimiento embebido solo lo puedes llamar dentro del procedimiento que lo contiene.
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #9  
Antiguo 29-07-2007
Delar Delar is offline
Miembro
 
Registrado: oct 2006
Posts: 90
Poder: 18
Delar Va por buen camino
Hay alguna manera de ejecutar el segundo desde el primero? Ya sea separando el codigo o algo...
Responder Con Cita
  #10  
Antiguo 30-07-2007
Delar Delar is offline
Miembro
 
Registrado: oct 2006
Posts: 90
Poder: 18
Delar Va por buen camino
Bump*****************a
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 06:50:51.


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