Listo, ya encontré la solución. Nadie llegó a contestarme pero la pongo por si a alguien le pasa lo mismo.
Resulta que era un problema de codificación de caracteres al leer el archivo. Al inicio estaba haciendo lo siguiente:
Código Delphi
[-]miArch : TIniFile;
miArch := TIniFile.Create(ruta);
Haciendo esto en Windows no da problemas pero en Android me genera el siguiente error: "No mapping for the Unicode character exists in te target multi-byte code page."
Maldito error que me ha salido hasta en la sopa
L
Este error pasa cuando el archivo contiene caracteres que no se encuentran en la tabla ACSII. Luego de horas leyendo por la red leí que la Unit TIniFiles contiene un objeto TMemIniFile que permite abrir un archivo con una codificación determinada. Existen varias codificaciones de caracteres, por lo que cuando revisé las tablas de cada una de ellas me di cuenta de que la que me hacía falta era la ANSI.
La solución definitiva fue la siguiente:
Código Delphi
[-]miArch := TMemIniFile.Create(ruta, TEncoding.ANSI);
miArch : TCustomIniFile;
En esto no vale usar el siguiente código para que detecte automáticamente la codificación del archivo. Existen codificaciones que aceptan por ejemplo, caracteres con tildes, pero a la hora de mostrarlos no te los muestra correctamente. Debemos saber en todo momento el tipo de codificación del archivo. Lo pongo de ejemplo porque fue lo primer que me vino a la mente para no pasar más trabajo averiguando el tipo de codificación de caracteres:
Código Delphi
[-]try
miArch := TMemIniFile.Create(ruta_archivo);
Memo1.Lines.Add('Abierto como Default);
except
try
miArch := TMemIniFile.Create(ruta_archivo, TEncoding.UTF8);
Memo1.Lines.Add('Abierto como UTF8');
except
try
miArch := TMemIniFile.Create(ruta_archivo, TEncoding.Unicode);
Memo1.Lines.Add('Abierto como Unicode');
except
try
miArch := TMemIniFile.Create(ruta_archivo, TEncoding.ASCII);
Memo1.Lines.Add('Abierto como ASCII');
except
try
miArch := TMemIniFile.Create(ruta_archivo, TEncoding.ANSI);
Memo1.Lines.Add('Abierto como ANSI');
except
try
miArch := TMemIniFile.Create(ruta_archivo, TEncoding.BigEndianUnicode);
Memo1.Lines.Add('Abierto como BigEndianUnicode');
except
try
miArch := TMemIniFile.Create(ruta_archivo, TEncoding.UTF7);
Memo1.Lines.Add('Abierto como UTF7');
finally
nada := '';
end;
end;
end;
end;
end;
end;
end;
No es la primera vez que este error me aparece para estarme molestando. Ahora tengo claro por qué es que sucede. Debemos de tener en cuenta cuando vamos a trabajar con archivos en Android el tipo de codificación con que lo vamos a tratar.