forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   MidletPascal (http://forum.boolean.name/forumdisplay.php?f=46)
-   -   Лишний char. (http://forum.boolean.name/showthread.php?t=14679)

im_zorg 07.05.2011 10:28

Лишний char.
 
Вложений: 1
Какую кодировку использовать что бы избежать вот такой хрени (скрин в аттаче). Использую resloader(за 22.04.2009), более позднии не использую т.к. изза этого косяки с отступом, chr(10),chr(13) и т.д. Так же юзаю parse(14.12.2008.).
PHP код:

procedure getmenuitem(ss:string);
begin
            tempstr
:=LoadText(ss);
            
line(tempstr,';');
            
itemcount:=(len/3)-1;
            for 
i:=0 to itemcount do
            
begin
                    menuitem
[i].name:=parse.get(i*3);
                    
menuitem[i].id:=sti(parse.get(i*3+1));
                    
menuitem[i].txt:=parse.get(i*3+2);
            
end;
            
parse.clear;
            
menu;
end

Помогите.
З.Ы. Почему если использовать иллюстрации в font32, то на keemulator'e все хорошо скроллируется, а на sjboy'e когда пол картинки внизу все зависает?
З.Ы. Почему бы не добавить в lib_font32 илюстрации, но так что бы в тхт надо было прописывать путь к картинке, а не [img1] тогда бы в коде проги не надо было бы добовлять их с помощью addimage?

cherepets 07.05.2011 12:18

Ответ: Лишний char.
 
А пример текстового файла?
Мне кажется что вообще тебе переходы на новую строку в файле не нужны. Либо точка с запятой не нужна, а парсить по переходу.

im_zorg 07.05.2011 12:19

Ответ: Лишний char.
 
Пункт 1 Меню;1;menu.txt;
Пункт 1 Меню;1;menu1.txt;
Пункт 1 ;0;nomer1.txt;
Пункт 1 ;0;nomer2.txt;
Пункт 1 ;0;nomer3.txt;
Пункт 1 ;0;nomer4.txt;
Пункт 1 ;0;nomer5.txt;
StartApp;1;mainmenu.css;
###
вот пример текстогого файла...

im_zorg 07.05.2011 12:24

Ответ: Лишний char.
 
Изменил на
PHP код:

Пункт 1Меню;1;menu.txt;Пункт 1Меню;1;menu1.txt;Пункт 1;0;nomer1.txt;Пункт 1;0;nomer2.txt;Пункт 1;0;nomer3.txt;Пункт 1;0;nomer4.txt;Пункт 1;0;nomer5.txt;StartApp;1;mainmenu.css;
### 

Теперь в самом начала у первого пункта квадратик(

PassCall 08.05.2011 16:52

Ответ: Лишний char.
 
1. Используй Lib_font32. Для отступов:

'текст'+Chr(32)+chr(13)+'еще текст' для переноса
'текст'+Chr(32)+chr(13)+chr(13)+'еще текст' для переноса с отступом

2. Зачем тебе resloader?

im_zorg 11.05.2011 19:34

Ответ: Лишний char.
 
Перовое) это за меня делает все функция format в font32 как я понял по описанию и исходнику либы... Второе) Она экономит память и загружает 25 строк по 100 символов каждая быстрее стандартной на 10-15 секунд зависит это конечно и от самого тела\эмулятора)

im_zorg 11.05.2011 19:36

Ответ: Лишний char.
 
Вопрос все есче в силе. как убрать этот епа...ый квадратик в начале файла?

PassCall 11.05.2011 20:00

Ответ: Лишний char.
 
Цитата:

Сообщение от im_zorg (Сообщение 188127)
Второе) Она экономит память и загружает 25 строк по 100 символов каждая быстрее стандартной на 10-15 секунд зависит это конечно и от самого тела\эмулятора)

Да ну... а сама либа что нисколько в памяти не занимает?
Эту либу выгодно юзать тогда, когда необходимо прочитать РЕАЛЬНО большой файл (например, книгу). В других случаях я не вижу смысла использовать эту либу.

Быстрее на 10-15 секунд? Обычно ресурс на телефоне читается около 0.5 -1.5 секунды, если текст большой, то секунд 5 максимум!

PassCall 11.05.2011 20:06

Ответ: Лишний char.
 
И вообще, самая лучшая либа - lib_ровные_руки + lib_мозг.

А насчет проблемы - попробуй поставить первым символом ";".

odd 12.05.2011 01:31

Ответ: Лишний char.
 
А что за текстовый редактор вы используете? Может это редактор что-то левое вставляет?
Я обычно использую Notepad++ или MiB Editor 1.26

Phantom 12.05.2011 01:44

Ответ: Лишний char.
 
Цитата:

Сообщение от im_zorg (Сообщение 188128)
Вопрос все есче в силе. как убрать этот епа...ый квадратик в начале файла?

Сохраняй UTF-8 без BOM

12121 12.05.2011 09:31

Ответ: Лишний char.
 
Открой текстовый файл в любом HEX редакторе и посмотри нет ли там чего лишнего.

PassCall 12.05.2011 10:32

Ответ: Лишний char.
 
А вообще мне кажется что стандартный шрифт не поддерживает нормального переноса. Я както пытался совими силами сделать перенос - тоже квадратик. Вывод - юзай фонт_32.

YellowAfterlife 12.05.2011 18:09

Ответ: Лишний char.
 
Цитата:

Сообщение от PassCall (Сообщение 188200)
А вообще мне кажется что стандартный шрифт не поддерживает нормального переноса. Я както пытался совими силами сделать перенос - тоже квадратик. Вывод - юзай фонт_32.

На самом деле р̶у̶к̶и̶-̶б̶е̶л̶к̶и прямые руки (и MP3.x) рулят.

Процедура которая внедряет поддержку юниксовых (0x0D \ 10ый символ) переносов строк:
PHP код:

procedure DrawTextF(textstringxyinteger);
var 
sstring;
begin debug(text);
  if 
Pos(text#10) = -1 then DrawText(text, x, y)
  
else begin
    s 
:= Copy(text0Pos(text#10));
    
DrawText(sxy);
    
DrawTextF(Copy(textLength(s)+1Length(text)), xGetStringHeight(s));
  
end;
end

Пример использования:
PHP код:

begin
  DrawTextF
('Hello'#10'World!', 4, 4);
  
RePaint;
  
Delay(5000);
end

Для MP2.x прийдется заменить <#10> на константу\переменную-строку и потом прибавлять ее через <+>.

im_zorg 12.05.2011 21:21

Ответ: Лишний char.
 
Вложений: 1
Цитата:

Сообщение от PassCall (Сообщение 188130)
Да ну... а сама либа что нисколько в памяти не занимает?
Эту либу выгодно юзать тогда, когда необходимо прочитать РЕАЛЬНО большой файл (например, книгу). В других случаях я не вижу смысла использовать эту либу.

Быстрее на 10-15 секунд? Обычно ресурс на телефоне читается около 0.5 -1.5 секунды, если текст большой, то секунд 5 максимум!

ой мс(миллисекунд)
Я и так юзаю самую последнюю версию lib_font32 своими силами загрузить тхт не получилось..
юзал такой код:
PHP код:

function loadtext(s:string):string;
var 
    
res:resource;
    
ss,text:string
begin 
    res 
:= OpenResource('/text.txt'); // Открываем файл
    
repeat 
        ss 
:= ReadLine(res); // Читаем строку из файла 
        
if ss='#' then text := text Chr(32)+ Chr(13);
        if 
ss='###' then break; // Если конец файла, то прекращаем чтение 
        
text := text+ss// Что-то делаем co строкой 
    
until ss='###';
    
CloseResource(res);
    
loadtext:=text;
end

результат белый экран.
Phantom сейчас попробую

Update:Результат не удовлетворил(( Аттач..


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

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