Hola:
Como te han comentado más arriba, puede almacenarlas en un archivo .INI (da igual la extensión, puedes usar la que quieras, el caso es que uses un objeto TIniFile para leerlo), que permite almacenar los valores de la forma:
[ANIMALES]
1=Perro
2=Gato
3=Elefante
...
Puedes usar el método ReadString del objeto TIniFile:
Código:
function ObtieneNombreAnimal (Numero: Integer) : String;
begin
with TIniFile.Create ('C:\MiArchivo.ini') do
try
result := ReadString ('ANIMALES', IntToStr(Numero), '');
finally
Free;
end;
end;
Con esta opción accedes al archivo en disco cada vez que quieres obtener un valor.
Otra opción es que recuperes todos los valores de una sección (dentro del archivo .INI, la sección viene indicada entre corchetes []), mediante ReadSection del objeto TIniFile, lo cual copia los valores en una lista, del tipo TStrings o descendiente; de esta forma cargas los valores en memoria y su acceso es más rápido; luego puedes consultar esos valores accediendo a la propiedad VALUES de dicha lista:
Código:
ListaAnimales : TStringList;
// este procedimiento lo llamas al principio para cargar la lista
// acuérdate al cerrar el programa de liberarla: ListaAnimales.Free;
procedure CargaListaAnimales;
begin
if ListaAnimales = nil then
ListaAnimales := TStringList.Create;
with TIniFile.Create ('C:\MiArchivo.ini') do
try
ReadSection ('ANIMALES', ListaAnimales);
finally
Free;
end;
end;
function ObtieneNombreAnimal (Numero: Integer) : String;
begin
result := ListaAnimales.Values[IntToStr(Numero)];
end;
En este último ejemplo, hemos declarado una variable ListaAnimales del tipo TStringList. También hubieras podido usar la propiedad Items de un TListBox y cargar en dicho TListBox las cadenas, quizás sea una forma mejor que utilizar un TMemo. Sería así:
Código:
procedure CargaListaAnimales;
begin
with TIniFile.Create ('C:\MiArchivo.ini') do
try
ReadSection ('ANIMALES', ListBox1.Items);
finally
Free;
end;
end;
function ObtieneNombreAnimal (Numero: Integer) : String;
begin
result := ListBox1.Items.Values[IntToStr(Numero)];
end;