Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   programa consola ¿como parsear parametros? (https://www.clubdelphi.com/foros/showthread.php?t=78547)

JXJ 28-04-2012 03:52:37

programa consola ¿como parsear parametros?
 
hola.

tengo unas dudas con respecto al parseo de parametros.
en las aplicaciones de consola.

cuando se le pasan parametros de esta secuencia.

conecta -u usuario -p password -host 127.0.0.1 archivo-c:\micrachivo.txt

o cuando hasta tienen ? / \ = o hasta tienen modificadores [ ] *

conecta -u usuario -p password -host 127.0.0.1 -archivo c:\micrachivo.txt /eliminar -email=micorreo@hotmail.com


y a veces te pide un caracter de terminacion de secuencia. ejemplo ;
si no lo pones no se te toma en cuenta que esta enviando la orden

conecta -u usuario -p password -host 127.0.0.1 -archivo c:\micrachivo.txt /eliminar -email=micorreo@hotmail.com;

tendran algun codigo fuente para estudiarlo??

bueno gracias. es que casi no he usado consolas :confused:

ecfisa 28-04-2012 05:13:24

Hola JXJ.

Los parámetros los podés obtener indicándole el índice a la función ParamStr y el total de parámetros enviados mediante la función ParamCount. Mientras que el texto ingresado con la variable CmdLine y con la función FindCmdLineSwitch podés comprobar la existencia de un switch en la cadena enviada.

Te pongo un ejemplo para ser mas explícito:
Código Delphi [-]
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  i: integer;
begin
  Writeln('Texto ingresado: ' + Pchar(CmdLine));
  Writeln('Numero de parametros: ', ParamCount);
  for i:= 1 to ParamCount do
    Writeln('Parámetro ' + IntToStr(i) + ': ' + ParamStr(i));
  if FindCmdLineSwitch('x') then
    Writeln('Switch x presente')
  else
    Writeln('Switch x no presente');
end.
Y luego de compilarlo desde el cmd haces:
Cita:

Conecta -u usuario -p password -host 127.0.0.1 -archivo c:\micrachivo.txt /eliminar -email=micorreo@hotmail.com
El resultado va a ser:
Cita:

Texto ingresado: Conecta -u usuario -p password -host 127.0.0.1 -archivo c:\micrachivo.txt /eliminar -email=micorreo@hotmail.com
Numero de parametros: 10
Parametro 1: -u
Parametro 2: usuario
Parametro 3: -p
Parametro 4: password
Parametro 5: -host
Parametro 6: 127.0.0.1
Parametro 7: -archivo
Parametro 8: c:\miarchivo.txt
Parametro 9: /eliminar
Parametro 10: -email=micorreo@hotmail.com
Switch x no presente
Saludos


La franja horaria es GMT +2. Ahora son las 13:43:25.

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