Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Console aplication y readln (https://www.clubdelphi.com/foros/showthread.php?t=20484)

acl_gandalf 16-04-2005 12:23:28

Console aplication y readln
 
Hola buenas, estoy con un 'console aplication' y en vez de usar un formulario uso una ventana del cmd. Bueno, el caso, es que si uso la orden writeln('texto a mostrar'); y ejecuto el programaeste se abre y se cierra en cuestion de medio segundo. Para evitar esto use la orden readln; que pausa el programa a la espera de que pulse 'enter'. y queria saber si existe la posibilidad de no salir de la apliacion al pulsar la tecla enter

gracias de antemano

dec 16-04-2005 14:19:43

A ver si puedo darte alguna idea
 
Hola,

No estoy seguro de que esta sea la mejor respuesta: he visto algunos programas de tipo consola que seguramente no lo hacen exactamente igual.

Sin embargo, pienso que tal vez esto pueda ayudarte, darte alguna idea, en fin, servirte de algo. Echa un vistazo a este código:


Código Delphi [-]
  program consola;
  
  {$APPTYPE CONSOLE}
  
  uses
    SysUtils;
  
  var
    usuario: string = '';
  
  begin
     while (usuario <> 'Pedro') do
     begin
       Writeln('Escribe tu nombre y pulsa ENTER para salir');
       ReadLn(usuario);
     end;
  end.

Efectivamente. Gracias al procedimiento "ReadLn" podemos obtener lo que el usuario escriba en la línea de la consola. De este modo, podríamos comprobar si lo que ha escrito es lo que precisamos para dejarle "salir" de la misma.

El ejemplo hace uso de una instrucción "while", pero, la idea que trataba de transmitir con el mismo es únicamente la posibilidad de leer el contenido de la línea que escriba el usuario: el qué hagamos con lo obtenido, o sea, permitir salir al usuario, utilizar dicho contenido, etc., es ya cuestión de qué queramos conseguir.

Por otro lado, si haces uso del conjunto de clases y componentes de la Jedi Library (1) encontrarás que dentro de estos los hay para ampliar, por decirlo de algún modo, las capacidades de una aplicación de tipo consola. Concretamente encontrarás un módulo de nombre "JclConsole.pas" que tal vez pueda serte de utilidad.

(1) Proyecto Jedi

acl_gandalf 16-04-2005 14:42:30

asias x la ayuda. funciona perfectamente

dec 16-04-2005 22:15:35

Me parece mejor con un bucle repeat que no con un while
 
Hola,

Se me ocurre que a más de uno le puede parecer el bucle "while" de más arriba perfectamente sustituible por un bucle "repeat" (y ya no sustituible, pero más adecuado). A mí desde luego me parece que sí, así que el código quedaría como a continuación se ve:

Código Delphi [-]
 
 program consola;
 
 {$APPTYPE CONSOLE}
 
 uses
   SysUtils;
 
 var
   usuario: string = '';
 
 begin
   repeat
     Writeln('Escribe tu nombre y pulsa ENTER para salir');
     ReadLn(usuario);
   until (usuario = 'Pedro');
 end.


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

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