Ver Mensaje Individual
  #1  
Antiguo 10-05-2014
webmasterplc webmasterplc is offline
Miembro
 
Registrado: mar 2008
Posts: 277
Reputación: 19
webmasterplc Va por buen camino
Concatenar un numero determinado de palabras con el contenido de un array

Buenas Tengo una función la cual me hace el envio de sms a travez de un gateway, esta funcion lo hace correctamente, para enviar masivos hago la consulta sql y la cargo en un array y luego hay un ciclo recorriendo el array pro a veces son 1000 registros y tarda mucho y a veces me da un error,el gateway me permite concatenar numeros con ; hasta 500 y alli hace una sola petición pos miestras que como lo hago hace 1000 peticiones, como podre hacer para concatenar y eliminar el ultimo numero el punto y coma que le queda al final este es el codigo.
Código Delphi [-]
function enviarSMS (phone,mensaje : string) : string; 
var
  http: TIdHttp;   
  params: TStrings;   
  respuesta: string;  
begin     
  http := TIdHTTP.Create(nil);     
  params := TStringList.Create;      
  begin         
    params.Add('usuario=miusuario');         
    params.Add('clave=AprilApril1979');         
    params.Add('telefonos='+phone);         
    params.Add('texto='+mensaje);         
    respuesta := http.Post('http://www.enlinea-ve.com/webservices/' +           'SendSms', params);     
  end;     
  params.Free;     
  http.Free; 
end;
el array esta creado en la unidad

contactos: array of string;

y llamo la funcion asi
Código Delphi [-]
with datos.sqcontactos do
begin                 
  Close;                 
  SQL.Text:= 'SELECT * FROM vcontactos WHERE vcontactos.miem_clasificacion =: miem_clasificacion';                 
  ParamByName('miem_clasificacion').AsString:=cbbclasificacion.Text;
  Open;                     
  while not Eof do                     
  begin                       
    SetLength(contactos, Length(contactos)+1);                       
    contactos[High(contactos)] := FieldByName('celular').AsString;
    Next;                     
  end;               
end;      
try             
  for i:= Low(contactos) to High(contactos) do             
  begin              
    enviarSMS((Format('%s', [contactos[i]])),mmomensaje.Text);             
  end;           
finally             
  contactos:=nil;             
  lst1.Clear;             
  mmomensaje.Clear;             
  MessageDlg('Proceso de Envío de SMS Concluido Exitosmente', mtCustom, [mbOK], 0);            
end;
Lo Otro es que como ven solo paso el numero al array quisiera ver si es posible pasarle numero y nombre a un array para personalizar el mensaje de texto cuando sea necesario.

Gracias de Antemano

Última edición por Casimiro Noteví fecha: 10-05-2014 a las 16:28:41.
Responder Con Cita