Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Guardar en txt todo el texto del command prompt (https://www.clubdelphi.com/foros/showthread.php?t=30534)

locojoan 09-04-2006 05:41:15

Guardar en txt todo el texto del command prompt
 
hola. quisiera saber si se puede guardar el texto completo que sale en el command prompt y luego mostrarlo en un memo.
por ejemplo si pongo dir. todos esos datos mostrarlos en un memo.

grasias

dec 09-04-2006 08:51:14

Hola,

Echa un vistazo a este Hilo que he encontrado luego de esta búsqueda en los Foros.

Lepe 09-04-2006 17:24:33

No sé si será viable, pero un simple:

dir C: > c:\texto.txt

En principio, cualquier orden dada al sistema operativo puede ser redirigida con ">" a un fichero.

Saludos

dec 09-04-2006 20:19:54

Hola,

Lepe, puede hacerse lo que dices, aunque, gracias sean dadas a la maravillosa API de Windows (no he sabido utilizar más ironía, espero que se comprenda) es posible también omitir el paso que supone guardar la información en un archivo.

Nota: Aclaro que, aunque no soy el único que piensa que el API de Win32 es una porquería o se acerca a ella, reconozco que no he profundizado nunca lo suficiente en la misma, que muchas faltas que encuentro en el API pueden ser en realidad faltas propias.

seoane 09-04-2006 20:24:21

Aunque en el hilo que te indico dec hay soluciones muy validas (una de ellas es mia :) ) aqui te dejo otra. Siempre esta bien tener varias formas de afrontar el mismo problema.

Código Delphi [-]
function Redirigir(Comando: string; Archivo: string): Boolean;
var
  Buffer: array[0..MAX_PATH] of Char;
  Info: SHELLEXECUTEINFO;
begin
  Result:= FALSE;
  Fillchar(Buffer,Sizeof(Buffer),0);
  if GetEnvironmentVariable('COMSPEC', @Buffer, SizeOf(Buffer) - 1) > 0 then
  begin
    Fillchar(Info,Sizeof(Info),0);
    Info.cbSize:= SizeOf(Info);
    Info.fMask:= SEE_MASK_NOCLOSEPROCESS;
    Info.lpFile:= @Buffer;
    Info.lpParameters:= PChar('/C '+Comando+' > '+Archivo);
    Info.nShow:= SW_HIDE;
    if ShellExecuteEx(@Info) then
    begin
      while WaitForSingleObject(Info.hProcess, 200) = WAIT_TIMEOUT  do
        Application.ProcessMessages;
      Result:= TRUE;
    end;
  end;
end;


La franja horaria es GMT +2. Ahora son las 06:06:21.

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