Значить так, код должне выводить русский текст из текстового файла в ресурсе. Но проблема в том что ОН НЕ ВЫВОДИТСО ... выводятся токо какието иероглифы и получаетсо что ета функцыя(см.ниже) не работает??о_О потомучто функцыя about_rasa не возвращает русский текст а какието кубики вместо букв... что не правильно?? говорят функцыя StrToUtf8 работает...
Function StrToUtf8(s: string;): string; // Корректирует русскую кодировку в строках взятых из ресурсов...
var i, c: integer; ch: char; ss: string;
begin
if (pos(s,chr(65488))<>-1) or (pos(s,chr(65489))<>-1) then begin // если строка содержит русские симовлы, то
for i:=1 to Length(s) do begin // перебираем строку
ch:=GetChar(s,i-1); c:=ord(ch); // берем по байтику
if c=65488 then begin // если байт равен 65488, то следующий байт отвечает за русскую букву
ss:=ss+CHR(ord(GetChar(s,i))-64384); // находим русскую букву и запоминаем
i:=i+1; // это чтобы мы перешли на следующую букву, а не брали следующий байт
end
else begin
if c=65489 then begin // то же самое но с другим байт-кодом
ss:=ss+chr(ord(GetChar(s,i))-64320);
i:=i+1;
end
else ss:=ss+ch; // если это не русская буква, то просто ее добавим
end;
end;
StrToUtf8:=ss; // возвращаем откорректированный текст
end
else StrToUtf8:=s; // если строка не содержала русских букв, то просто ее и возвратим...
end;
function about_rasa(a:string):string;
var res : resource;
begin
res := openResource('/'+a+'.txt');
if (resourceAvailable(res)) then about_rasa:=StrToUtf8(readLine(res));
closeResource(res);
end;