Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Al cargar recurso de texto aparecen caracteres raros (https://www.clubdelphi.com/foros/showthread.php?t=83856)

alquimista 06-08-2013 17:59:15

Al cargar recurso de texto aparecen caracteres raros
 
Muy buenas foreros...

Uso unos archivos de texto como recursos
en el archivo *.rc
allCF RCATA ".\Cfg\AllCteFun.txt"
allCte RCDATA ".\Cfg\Ctes.txt"
allFun RCDATA ".\Cfg\Funcs.txt"

Para cargar en una stringlist uso esta función:

Código Delphi [-]
procedure TForm7.LoadStringListFromResource(const ResName: string;SL : TStringList);
var
  RS: TResourceStream;
begin
  RS := TResourceStream.Create(HInstance, ResName, RT_RCDATA);
  try
    SL.LoadFromStream(RS);
  finally
    RS.Free;
  end;
end;
Uso en el programa
Código Delphi [-]
 TkAllcteFun := TStringList.Create;
 LoadStringListFromResource('allCF',TkAllcteFun);

En un listbox asigno la stringlist
lst1.Items.Assign(TkAllctefun);
Probe también: lst1.Items:=TkAllctefun;


El archivo de recurso empieza por:
AreaTRI1#f0#p##desc:#AreaTRI1( )#help:
Lo separo para obtener solo lo que esta entre # (AreaTRI1)

y en el listbox se visualiza en el primer elemento
Í>¿AreaTRI1

Que hago mal ya que solo aparece eso en el primer elemento "Í>¿"

Es por usar RCDATA en el rc o????
Gracias de antemano.

ecfisa 06-08-2013 20:24:29

Hola alquimista.

Seguramente los archivos de texto (AllCteFun.txt, Ctes.txt y Funcs.txt), fueron guardados en formato UTF-8. Guardándolos como ANSI tendrían que verse correctamente...

Saludos :)

alquimista 06-08-2013 23:35:25

Gracias ecfisa..

El texto esta grabado con otro programa en delphi que usa stringlist.savetofile.
He convertido el texto a ANSI con un editor y parece que ya no sale.
Usaba en el stringlist el símbolo micro (u).
¿Es posible que al hacer el savetofile se cree en utf?

ecfisa 07-08-2013 00:12:46

Hola alquimista.

Pareciera que no... Acabo de hacer la prueba guardando una variable TStrings con el contenido 'blabla µ blabla' a un archivo de texto, lo incluí en el archivo .res y luego se mostró sin caracteres extraños en un ListBox (pero esto usando Delphi 7).

Saludos :)

alquimista 07-08-2013 00:19:48

Uso delphi 2007...
Pues no se por que pasa eso?

ecfisa 07-08-2013 00:57:16

Hola alquimista.

Probá si con la función UTF8ToAnsi se muestra correcto:
Código Delphi [-]
...
 with TStringList.Create do
  try
    LoadFromFile('Tu_Archivo_UTF8.txt');
    ListBox1.Items.Text := UTF8ToAnsi(Text);
  finally
    Free;
  end;
...
Lamentablemente tengo que salir ahora y no puedo probarlo

Saludos. :)

alquimista 07-08-2013 01:19:52

ok..
Usando la función UTF8ToAnsi se soluciona...
Es curioso...
¿Utf-8 graba al principio del archivo algunos bytes de control? ??

Bueno muchas gracias..

ecfisa 07-08-2013 16:51:34

Hola alquimista.

Aquí tenes una descripción del formato UTF-8.

Saludos. :)

alquimista 09-08-2013 19:07:56

gracias por la info.


La franja horaria es GMT +2. Ahora son las 19:59:15.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi