RU 📌 Pinned

Как сделать?

Dark[Ol(U23)leneri] #34 18.04.2010 22:57 6408 comments 2437302 views

TimKah:

Я заметил, что HTML в QSP не всегда работает.

Можно ли как-нибудь сделать это меню или это лишь мои мечты?

В классическом плеере и AeroQSP это сделать нельзя. В будущем плеере Quest Navigator, который появится в этом году, это можно будет сделать.

А можно как-нибудь реализовать работу с файлами? Мне бы надо рандомно вытаскивать строки из txt, по одной при каждом запросе

TimKah,
с файлами работать нельзя.

Nex:

ADDOBJ '<<day>> день', '', 1

Надо это обязательно внести в справку по QSP. Далеко не все пользуются QGEN.

PS Может и еще какие недокументированные возможности есть?

Zeantar,
есть, есть. См. здесь.

Справку давно пора обновить и переписать, но вечная проблема - некому этим заняться.

Nex:

Zeantar,
есть, есть. См. здесь.

По твоей ссылке ничего такого нет.

Zeantar,
странно. У меня открывается тема, в которой перечислено то, что есть в движке, но в справке еще нет. Ты разве не это имел в виду, спрашивая о “недокументированных возможностях”?

Режим “DEBUG” так же и для классики действует?

Martin Doriel,
да, эта переменная действует на уровне библиотеки, поэтому работает на всех плеерах.

Если вставляю такой код:

Spoiler
USEHTML = 1
'<table border=1 width=100%>
<td>asd</td>
<td>asd</td>
<td>asd</td>
<td>asd</td>
<td>asd</td>
<td>asd</td>
<td>asd</td>
<td>asd</td>
<td>asd</td>
<td>asd</td>
asd</table>'
'Текст куда-то уплыл'

Или подобный соответственно. То текст уплывает под таблицей. Сколько ячеек в таблице, на такое количество переводов строки и уплывает. Есть способ убрать этот поток переходов на след. строку? Очень мешает. Особенно если таблица находится внизу текста, ведь тогда появляется полоса прокрутки.

Martin Doriel,
уже задавался этот вопрос. Все переводы строк в режиме HTML заменяются на тег
, поэтому нужно писать все в одну строку и использовать оператор *P.
Например, такой код

'<div>1</div>
<div>2</div>
<div>3</div>'

выдаст в итоге
<div>1</div>

<div>2</div>

<div>3</div>

Если мы напишем то же самое в одну строку:

'<div>1</div><div>2</div><div>3</div>'

то у нас добавится один тег
в конце
<div>1</div><div>2</div><div>3</div>

Чтобы совсем избавиться от “мешающего” тега
, нам нужно написать все в одну строку и использовать оператор *P:

*P '<div>1</div><div>2</div><div>3</div>'

на экран выведется “чистый” код
<div>1</div><div>2</div><div>3</div>

Вопрос снят. Жека ступил жуууутко. (давно HTML не использовал.)
Конечно же правильно:

USEHTML = 1
'<table border=1 width=100%>
<td>asd</td><td>asd</td><td>asd</td><td>asd</td><td>asd</td><td>asd</td><td>asd</td><td>asd</td><td>asd</td><td>asd</td></table>'
'Текст никуда не уплыл'

Столкнулся с интересной задачей.
Цель: Захватить с экрана текст, обработать, вернуть с изменениями.
Например, заменить слово “упустить” на “облегчить”.

Текст:
Наличие функционального редактора QGen для написания игр,
ведение списка локаций и удобное представление компонентов,
позволяет упростить написание и отладку.

$ecran=MAINTXT
STRFIND с включенными модификаторами в шаблоне все прекрасно находят. Но вот $REPLACE упорно не желает подчиняться.
Как заставить его работать в этой ситуации? Как проще сделать замену на экране?

если нужно просто заменить одно слово на другое то $REPLACE прекрасно справляется

REPLACE($ecran, 'упростить', 'облегчить')

но если нужен замена с использованием регулярных выражений, то REPLACE не поможет, поскольку он с регуляркой не работает
в этом случае придется использовать mid для формирования строки и strpos для определения положения - пример можно глянуть в коде для вики разметки

Log in or Register to post comments.