Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Problema con el StringList (https://www.clubdelphi.com/foros/showthread.php?t=92479)

Milworm99 09-11-2017 17:57:01

Problema con el StringList
 
Hola a toda la comunidad de clubdelphi, tengo un problema, quisiera añadir LICENCIAS a través de un servidor Hosting y que delphi lea las licencias agregadas.

Ejemplo este es mi hosting en donde agregare las licencias: latingamerz.000webhostapp.com/Licencias.txt

Al poner en mi hosting cualquier licencia ejemplo: WD-WAD5G4CKFUCT-0002-0652-BFEB-FBFF-0098-F89D

Quisiera que delphi compruebe las licencias si están agregadas a traves de mi hosting.

Este es el codigo que uso

Código:

function existeCadena (lista : TStringList; cadena : string) : boolean;
var
 posicion : integer;
begin
  lista.Sort;
  existeCadena := lista.Find(cadena, posicion);
  end;

Código:

procedure TForm1.Button1Click(Sender: TObject);
var
LICENCIAS : TStringList;
posicion : integer;
cadenaAComprobar : string;
begin
LICENCIAS:=TStringList.Create;
LICENCIAS.add('WD-WCC3F3CKFUCT-0002-0652-BFEB-FBFF-0098-E3BD');
cadenaAComprobar:=GetIdeDiskSerialNumber + '-' + GetScsiDiskSerialNumber + GetCPUSerialNumber;
  posicion := 0;
if existeCadena(LICENCIAS, cadenaAComprobar) then
  begin
  showMessage('LICENCIA ACTIVADA');
    end
  else
  begin
    LICENCIAS.Add(cadenaAComprobar);
    showMessage('LICENCIA NO ACTIVADA');
  end;
end;
end.

Espero su ayuda !! Gracias.

roman 09-11-2017 18:54:23

Y, ¿cuál es el problema?

LineComment Saludos

ecfisa 09-11-2017 18:56:56

Hola.

El método Find requiere que la lista esté ordenada.

O bién ordenas la lista antes de la comprobación o podrías evitar la función existeCadena reemplazando el condicional por:
Código Delphi [-]
...
   if AnsiPos(CadenaAComprobar, LICENCIAS.Text) <> 0 then
...

Saludos :)

Milworm99 09-11-2017 19:30:40

Lo que quiero es activar licencias mediante un hosting, osea agregar las licencias en el hosting, y quisiera saber cual es el codigo para agregar licencias en un hosting y que delphi lea link del hosting

ecfisa 09-11-2017 20:13:43

Cita:

Empezado por Milworm99 (Mensaje 522380)
Lo que quiero es activar licencias mediante un hosting, osea agregar las licencias en el hosting, y quisiera saber cual es el codigo para agregar licencias en un hosting y que delphi lea link del hosting

¡ah!... pero eso es una cosa totalmente diferente al título de tu consulta: "Problema con el StringList"

Saludos :)

Milworm99 09-11-2017 20:33:43

Sii disculpen, ayudenme con mi problema porfavors

movorack 09-11-2017 21:05:58

Hasta donde entiendo lo que necesitas es crear un WebService
Acá hay un tutorial de como crear uno en Delphi con SOAP y acá uno con REST
y acá un tutorial de nuestro compañero neftalí de como hacer un cliente para un WS en SOAP (El tutorial cubre también como hacer el servicio en PHP)
y acá un tutorial de como consumir un servicio REST

Milworm99 09-11-2017 21:48:35

No habra otro metodo ?

Milworm99 10-11-2017 00:23:23

Necesito ayuda :( !!
 
Hola gente de la comunidad Clubdelphi, quisiera que me ayuden a implementar este codigo que uso

Lo que quiero, es activar licencias mediante hosting, osea agregar licencias en mi hosting ejemplo: latingamerz.000webhostapp.com/Licencias.txt
y que delphi lea el link del hosting y se vayan agregando las licencias.

Quisiera que delphi lea si existe las licencias introducida en mi hosting.

Los codigos que uso son estos:

Código:

function existeCadena (lista : TStringList; cadena : string) : boolean;
var
 posicion : integer;
begin
  lista.Sort;
  existeCadena := lista.Find(cadena, posicion);
  end;

Código:

procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.Text:= GetIdeDiskSerialNumber + '-' + GetScsiDiskSerialNumber + GetCPUSerialNumber;
end;

Código:

procedure TForm1.Button1Click(Sender: TObject);
var
LICENCIAS : TStringList;
posicion : integer;
cadenaAComprobar : string;
begin
LICENCIAS:=TStringList.Create;
LICENCIAS.add('WD-WCC3F3CKFUCT-0002-0652-BFEB-FBFF-0098-E3BD');
cadenaAComprobar:=GetIdeDiskSerialNumber + '-' + GetScsiDiskSerialNumber + GetCPUSerialNumber;
  posicion := 0;
if existeCadena(LICENCIAS, cadenaAComprobar) then
  begin
  showMessage('LICENCIA ACTIVADA');
    end
  else
  begin
    LICENCIAS.Add(cadenaAComprobar);
    showMessage('LICENCIA NO ACTIVADA');
  end;
end;
end.

Espero que me ayuden, gracias

aposi 10-11-2017 01:10:19

busca como descargar el fichero licencias.txt y como cargarlo en el stringlist (tambien lo puedes hacer sin descargar, solo leiendo el contenido por ejemplo con webbrowser)

Milworm99 10-11-2017 01:26:34

Cita:

Empezado por aposi (Mensaje 522403)
busca como descargar el fichero licencias.txt y como cargarlo en el stringlist (tambien lo puedes hacer sin descargar, solo leiendo el contenido por ejemplo con webbrowser)

Con la funcion downloadfile si puedo hacerlo, pero creo que es mejor leiendo el contenido del servidor hosting

Neftali [Germán.Estévez] 10-11-2017 11:54:18

Antes de nada Revisa la guía de estilo de los foros.

Cita:

Empezado por Milworm99 (Mensaje 522387)
No habra otro metodo ?

Si no quieres descargar el fichero, utiliza un WebBrowser.

Crea un proyecto nuevo y coloca un TWebBrowse y un TMemo. En el uses añade mshtml.
En el OnShow del formulario coloca lo siguiente:
Código Delphi [-]
  WebBrowser1.Navigate('http://latingamerz.000webhostapp.com/Licencias.txt');

Y en el evento NavigateComplete2 del TWebBrowser lo siguiente:
Código Delphi [-]
procedure TForm2.WebBrowser1NavigateComplete2(ASender: TObject;
  const pDisp: IDispatch; const URL: OleVariant);
var
  sTexto : IHTMLElement;
begin
  if Assigned(WebBrowser1.Document) then begin
    sTexto := (WebBrowser1.Document AS IHTMLDocument2).body;
    memo1.Text := sTexto.outerText;
  end;
end;

Al ejecutrar tendrás en el TMemo el contenido del TXT que tienes en tu servidor.


La franja horaria es GMT +2. Ahora son las 15:32:11.

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