Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Duda en HashTable (https://www.clubdelphi.com/foros/showthread.php?t=40765)

marceloalegre 26-02-2007 17:56:30

Duda en HashTable
 
Buenos Dias:

Les molesto para hacerles una consulta basica sobre la implementación que ofrece dephi de las HashTables.
Me encontre con la clase THashedStringList (de la Inifiles) y me arme el sig. ejemplo:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  HashTable:THashedStringList;
  indice:Integer;
begin
  HashTable:= THashedStringList.create;
  HashTable.Add('Marcelo');
  HashTable.Add('juancito');
  HashTable.Add('pedrito');
  HashTable.Find('juancito',Indice);
  showmessage(HashTable.ValueFromIndex[Indice]);
end;

Donde cargo 3 elementos y luego busco uno y lo muestro en base a su indice (clave).. Parece que funciona, pero siempre no me muestra la primera letra :) ... por ejemplo si busco "juancito" me retorna uancito... hay algo que lo estoy haciendo mal seguramente, no encuentro ejemplos en la ayuda..

Me darian una mano? Gracias...!

seoane 26-02-2007 18:15:29

En vez de usar:
Código Delphi [-]
  Showmessage(HashTable.ValueFromIndex[Indice]);

Debes utilizar:
Código Delphi [-]
  Showmessage(HashTable[Indice]);

Por otro lado, si quieres sacar ventaja de utilizar un THashedStringList debes usar el método IndexOf en vez de Find, de lo contrario no encontraras ninguna diferencia con un TstringList:
Código Delphi [-]
Indice:= HashTable.IndexOf('juancito');
  if Indice <> -1 then
    Showmessage(HashTable[Indice]);

marceloalegre 26-02-2007 21:53:31

Perfecto Domingo! va muy bien!. De nuevo, y como siempre, Gracias!


La franja horaria es GMT +2. Ahora son las 16:12:38.

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