Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Error al Recorrer Array de Contactos (https://www.clubdelphi.com/foros/showthread.php?t=83360)

webmasterplc 08-06-2013 08:02:19

Error al Recorrer Array de Contactos
 
Buenas, estoy tratando de recorrer un array para tomar el teléfono desde alli y enviar un sms desde un archivo php en mi servidor, debo enviar los datos a través del método post, en el envio todo bien pero cuando quiero tomar el numero de contacto de un array solo me envia el primer registro y me da un error en delphi y no envía el resto.

Código Delphi [-]
procedure TForm1.btn1Click(Sender: TObject);
var
registros:Integer;
contactos: array of string;
http: TIdHttp;
  params: TStrings;
  respuesta: string;
begin
registros:=2;

SetLength( contactos, registros );
contactos [0]:='584128696261';
contactos [1]:='584262828527';

for registros := 0 to registros do
begin
  http := TIdHTTP.Create(Self);
  params := TStringList.Create;
  try
    params.Add('usuario=ksms');
    params.Add('clave=1234');
    params.Add('telefonos='+contactos [registros]);
    params.Add('texto=Prueba de SMS Samuel');
    respuesta := http.Post('http://www.ksms.com.ve/webservices/EnvioSMS', params);
      finally
    http.Free;
    params.Free;
  end;
  contactos:=nil;


end;
end;

Y si alguien me puede orientar tambien de como hago para pasar datos de un query a un array pero quiero tomar nombre y contacto la base de datos es mysql.

ecfisa 08-06-2013 08:36:19

Hola webmasterplc.

Revisa las modificaciones:
Código Delphi [-]
procedure TForm1.Btn1Click(Sender: TObject);
var
  i, registros:Integer;
  contactos: array of string;
  http: TIdHttp;
  params: TStrings;
  respuesta: string;
begin
  registros := 2;
  SetLength(contactos, registros);
  contactos [0]:='584128696261';
  contactos [1]:='584262828527';
  http := TIdHTTP.Create(Self);
  try
    params := TStringList.Create;
    try
      for i := 0 to registros-1 do   // for registros := 0 to registros do (no)
      begin
        params.Add('usuario=ksms');
        params.Add('clave=1234');
        params.Add('telefonos='+contactos [i]);
        params.Add('texto=Prueba de SMS Samuel');
        respuesta := http.Post('http://www.ksms.com.ve/webservices/EnvioSMS', params);
      end;
    finally
      params.Free;
    end;
  finally
    http.Free;
    contactos := nil;  // o también: Finalize(contactos);  
  end;
end;
De ese modo el código es lógicamente correcto, pero tendras que probar si envía los sms...

Cita:

Y si alguien me puede orientar tambien de como hago para pasar datos de un query a un array pero quiero tomar nombre y contacto la base de datos es mysql.
Recuerda: Preguntas distintas = hilos distintos ;)

Saludos :)

webmasterplc 08-06-2013 14:49:18

Gracias egfisa funciono perfecto, voy a hacer la otra consulta saludos

cloayza 10-06-2013 16:50:22

Tambien podrías usar lo siguiente:

Código Delphi [-]
for i := Low(contactos) to High(Contactos) do

Saludos...


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

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