forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Библиотеки (http://forum.boolean.name/forumdisplay.php?f=124)
-   -   Lib_res8 - загрузка русского текста из ресурсных файлов (http://forum.boolean.name/showthread.php?t=15264)

YellowAfterlife 08.08.2011 15:33

Lib_res8 - загрузка русского текста из ресурсных файлов
 
Вложений: 1

Название: res8
Версия: 1.0
Автор: YellowAfterlife
Описание: Эта библиотека реализует простой интерфейс для чтения строк из файлов в кодировке UTF-8 (в основном вам это может понадобится для корректной загрузки русского текста). Библиотека в основном предназначена для пользователей MidletPascal3.*, поскольку в нем загрузка русского текста из файла не представляется возможной.
Скачать: (ссылка) (mirror - см. вложения)
Функции:
Цитата:

res8.load(filename: string) - загружает в память строки из файла.
res8.unload - выгружает строки из памяти (освобождая ее).
res8.loaded: integer - возращает, загружены ли строки.
res8.length: integer - возращает количество строк.
res8.line(index: integer): string - возращает строку с указанным индексом
Пример кода:
PHP код:

program res8;
uses res8;
var
  
tmpresource;
  
strstring;
  
ihinteger;
begin
  
// Загружаем строки:
  
res8.load('/data.txt'); // файл с текстом
  // Выводим все на экран:
  
setColor(424242);
    
fillRect(00getWidthgetHeight);
  
setColor(240240240);
  
:= getStringHeight('');
  for 
:= 1 to res8.length do
    
drawText(res8.line(i), 4+ (1) * h);
  
rePaint;
  
// Выгружаем строки (если они больше не нужны):
  
res8.unload;
  
// Ждем.
  
repeat delay(1000); forever;
end


PassCall 11.08.2011 22:00

Ответ: Lib_res8 - загрузка русского текста из ресурсных файлов
 
Ыть!

А можно сделать и так:
Код:

Function Decoder(Deco:string):string;
        var
        ch:char;
        ds:string;
        d_temp,i:integer;
        begin
        ds:='';
        for i:=1 to length(Deco) do
                begin
                ch:=getchar(deco,(i-1));
                d_temp:=ord(ch);
                if d_temp>122 then ds:=ds+chr(d_temp+1104)
                else
                ds:=ds+getchar(deco,j-1);
                end;
                decoder:=ds;
                end;

Стандартные возможности МП рулят! Так то!

P.S. незнаю, работает ли это в МП3.

YellowAfterlife 12.08.2011 01:58

Ответ: Lib_res8 - загрузка русского текста из ресурсных файлов
 
PassCall: Если бы все было так просто, на форуме не было бы многочисленных тем по поводу этого.
Возможно стоит уделить минуту тестированию программы перед тем как писать сообщение?

MP3* просто-напросто неправильно считывает данные из файла. То есть пары русских букв считываются как одинарные символы.

P.S.: использовать глобальную переменную j в локальном коде - плохая идея.

Maga05 18.12.2011 14:03

Ответ: Lib_res8 - загрузка русского текста из ресурсных файлов
 
у меня выдает слово forever не является именем подпрограммы, функции или переменной
слово until пропущено end найдено

GRAY_WOLF 18.12.2011 23:31

Ответ: Lib_res8 - загрузка русского текста из ресурсных файлов
 
Цитата:

Сообщение от Maga05 (Сообщение 214438)
у меня выдает слово forever не является именем подпрограммы, функции или переменной
слово until пропущено end найдено

Ищи где пропустил фигурную скобку "{" или "}" ...

cepreu 20.12.2011 02:51

Ответ: Lib_res8 - загрузка русского текста из ресурсных файлов
 
Код:

begin
  // Загружаем строки:
  showcanvas;
  res := openResource('/data.txt');
  if resourceAvailable(res) then
  begin
    Texts := readLine(res);
    closeResource(res);
  end;

  res8.load('/data.txt'); // файл с текстом
  // Выводим все на экран:
  setColor(255, 255, 255);
    fillRect(0, 0, getWidth, getHeight);
  setColor(40, 40, 40);
  h := getStringHeight('');
  for i := 1 to res8.length do
    drawText(res8.line(i), 4, 4 + (i - 1) * h);
  drawText(Texts + ' ' + res8.loaded + ' ' +  res8.length, 0, 0);
  rePaint;
  // Выгружаем строки (если они больше не нужны):
  res8.unload;
  // Ждем.
  repeat delay(1000); forever;
end.

data.txt:
First
Second
...

На дисплей: First 0 0

Что то не получается - просто модифицировал пример из Lib_res8_ru.txt.
Помогите, pls:''((

bormotan 20.12.2011 15:38

Ответ: Lib_res8 - загрузка русского текста из ресурсных файлов
 
большая просьба - добавьте функцию вроде обычного readline - чтобы читала только одну строку

Maga05 28.11.2012 11:02

Ответ: Lib_res8 - загрузка русского текста из ресурсных файлов
 
на эмуляторе все работает нормально, а на телефоне пусто


Часовой пояс GMT +4, время: 09:34.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot