È un peccato, ma Delphi non ha ancora strutture di dati molto semplici, come i set. Il suggerimento di "Fabricio Araujo" è molto limitato nell'uso: devi conoscere tutte le possibili stringhe, quindi è inutile quando le leggi da qualche parte. È anche impossibile avere più di 256 elementi in tale "insieme di stringhe". Remy Lebeau ha suggerito di usare TStringList per questo scopo, ma è assolutamente inefficiente quando si hanno grandi set. Nelle versioni moderne di Delphi è possibile utilizzare TDictionary per tenere insieme non ordinato di qualsiasi cosa, tra cui le stringhe:
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;
Si tratta di maiuscole e minuscole. Se è necessaria un'implementazione senza distinzione tra maiuscole e minuscole, è possibile rendere tutte le stringhe in minuscolo prima di mettere/guardare nel set (utilizzare la funzione AnsiLowerCase per questo).
fonte
2013-07-27 08:22:34
Grazie, utile !! – Armin