Il est dommage, mais Delphi ne disposent toujours pas même des structures de données très basiques, comme des ensembles. Suggestion de "Fabricio Araujo" est très limitée dans l'utilisation - vous devez connaître toutes les chaînes possibles, il est donc inutile de les lire de quelque part. Il est également impossible d'avoir plus de 256 éléments dans un tel "ensemble de chaînes". Remy Lebeau a suggéré d'utiliser TStringList à cette fin, mais il est absolument inefficace quand vous avez de grands ensembles. Dans les versions modernes de Delphi il est possible d'utiliser TDictionary garder ensemble non ordonné de quoi que ce soit, y compris les chaînes:
procedure TForm6.FormCreate(Sender: TObject);
type
TEmpty = record end;
var
MySet: TDictionary<String, TEmpty>;
Dummy: TEmpty;
begin
MySet := TDictionary<String, TEmpty>.Create;
try
MySet.Add('Str1', Dummy);
MySet.Add('Str2', Dummy);
MySet.Add('Str3', Dummy);
if MySet.TryGetValue('Str2', Dummy) then
ShowMessage('Exists');;
finally
MySet.Free;
end;
end;
Il est sensible à la casse. Si vous avez besoin d'une implémentation insensible à la casse, vous pouvez mettre toutes les chaînes en minuscules avant de mettre/look alors dans set (utilisez la fonction AnsiLowerCase pour cela).
Merci, Utile !! – Armin