Чтение файлов

 
+
-
edit
 

Balancer

администратор
★★★★★
Например: есть ли возможность прочитать из форта файл и вернуть его ?
типа
: do-html
"html/path/to/file" fileread return
не нашел как такое делать, просто возвращать строку - понятно, а вот содержимое файла ..
 


В стандартном Форте есть слова, типа FILE-OPEN + FILE-READ + FILE-CLOSE. У нас пока не реализованы.

Но. Из JBF можон вызывать любые Java-методы. В net.sf.l2j.gameserver.lib.Files есть статический метод public static final String read(String name).

За синтаксис не ручаюсь, сейчас проверить не на чем, но своё слово будет в духе:
code text
  1. "net.sf.l2j.gameserver.lib.Files" class constant Files.class
  2. : file  ( file-name -- content | null )  Files.class "read" 1 jget ;
 

TSM

новичок
Но. Из JBF можон вызывать любые Java-методы. В net.sf.l2j.gameserver.lib.Files есть статический метод public static final String read(String name).

За синтаксис не ручаюсь, сейчас проверить не на чем, но своё слово будет в духе:
code text
  1. "net.sf.l2j.gameserver.lib.Files" class constant Files.class
  2. : file  ( file-name -- content | null )  Files.class "read" 1 jget ;
 


Вот это
"net.sf.l2j.gameserver.lib.Files" class constant Files.class

: fread ( fname — content | null )
Files.class "read" 1 jget

выдает NULL по
"html/bbs/bbs-default.htm" fread
Хотя, файл по show показывается в окошке нормально

Вообще, нельзя ли низкоуровневое слово дописать типа fread ?
Помоему это легко, надо в /extensions/jbforth/files.java по примеру SHOW дописать FREAD который просто не будет пакет посылать, а будет возвращать прочитанное.

Или же что означает в jget параметр 1 - один аргумент на входе ?
Si vis tibi omnia subjicere, te subjice rationi  

Murkt

Pythoneer

а если data дописать к пути? :)
[team Їжачки - сумні падлюки]  

TSM

новичок
а если data дописать к пути? :)
 


ДАДАДАДАД !!!
Муркт, я тебя люблю )) Вот я идиот.. куда же оттуда data пропала ?

Все заработало :) Воодушевленный попер дальше.
Si vis tibi omnia subjicere, te subjice rationi  

Murkt

Pythoneer

видать дело в том, что фортовский parse предназначен изначально для data. А вот явовская функция - она предназначена для любых файлов :)
[team Їжачки - сумні падлюки]  

TSM

новичок
видать дело в том, что фортовский parse предназначен изначально для data. А вот явовская функция - она предназначена для любых файлов :)
 


Даже так ? ... Будем знать, однако :) Теперь бы еще научится получать конфигове переменные ... Как например рейт получить ?
Si vis tibi omnia subjicere, te subjice rationi  

Murkt

Pythoneer

из форта?
[team Їжачки - сумні падлюки]  

TSM

новичок
из форта?
 


именно, думаю рейты сервера выводить там где топ, ну и заодно топ онлайн
Si vis tibi omnia subjicere, te subjice rationi  

Murkt

Pythoneer

"CONFIG_TRAMPARAM" config@

PS что-то оффтоп пошёл. При чём тут конфиг и чтение файлов? :))
[team Їжачки - сумні падлюки]  

TSM

новичок
Спасибо ! Закрыли тему. А про файлы - хорошо бы в вики перенести.
Si vis tibi omnia subjicere, te subjice rationi  
+
-
edit
 

Balancer

администратор
★★★★★
code text
  1. Кстати, в таком варианте: public static final String read(String name, L2Player player)
  2.  
  3. Т.е.:
  4. [code forth]
  5. : file  ( file-name -- content | null )  player@ Files.class "read" 2 jget ;


Оно должно будет читать с учётом языка пользователя. Т.е. с проверкой на наличие /html-ru/, file-name-ru.htm или ./ru/file_name.htm :)
 

TSM

новичок
Опа... а форт при таком методе обрабатывается ? ... помоему нет, например
[ "RATE_XP @config]
не отрабатывает, а просто выводится :(
Si vis tibi omnia subjicere, te subjice rationi  

Murkt

Pythoneer

не
[ "RATE_XP @config]
а
[ "RATE_XP" config@ ]

пробелы важны после и перед скобкой.

ЗЫ Балансер, надо менять разметку кода на твою! без неё ужос :)
[team Їжачки - сумні падлюки]  

TSM

новичок
не
[ "RATE_XP @config]
а
[ "RATE_XP" config@ ]

пробелы важны после и перед скобкой.

ЗЫ Балансер, надо менять разметку кода на твою! без неё ужос :)
 


Тьфу ) Ну да, у меня именно так и написано config@ - но похоже метод read не понимает форт чтоли ?
Si vis tibi omnia subjicere, te subjice rationi  
+
-
edit
 
Еще скобки закрывать не забывай, это тоже управляющие символы.
Пытаясь понять рекурсию, следи за тем, чтобы она не поняла тебя первой...  

TSM

новичок
Еще скобки закрывать не забывай, это тоже управляющие символы.
 


XP Rate: [ "RATE_XP" config@ ]
SP Rate: [ "RATE_SP" config@ ]
Adena Rate: [ "RATE_DROP_ADENA" config@ ]
Drop Rate: [ "RATE_DROP_ITEMS" config@ ]
Spoil Rate: [ "RATE_DROP_SPOIL" config@ ]

не работет, помоему все-таки read не обрабатывает форт ((
Si vis tibi omnia subjicere, te subjice rationi  
+
-
edit
 

Balancer

администратор
★★★★★

Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Welcome To The L2J Telnet Session.
Please Insert Your Password!
Password: *****
Password Correct!
[L2J]
'[ "RATE_XP" config@ ]' parse .
25.0

html при показе из файла - автоматически парсится (parse делает, в смысле).
 

TSM

новичок
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Welcome To The L2J Telnet Session.
Please Insert Your Password!
Password: *****
Password Correct!
[L2J]
'[ "RATE_XP" config@ ]' parse .
25.0

html при показе из файла - автоматически парсится (parse делает, в смысле).
 


Нее! Ты не понял, по parse все пашет, но мне надо не в окошко выдавать, а просто вернуть отпарсеное содержимое файла,
"file...." parse
не пашет в таком случае ... просто возвращает строку эту.
Si vis tibi omnia subjicere, te subjice rationi  
+
-
edit
 

Balancer

администратор
★★★★★
"data/html/my-dialog.htm" file parse .
 

TSM

новичок
"data/html/my-dialog.htm" file parse .
 


Стормозил .. понял теперь чего и как ) Спасибо!
Si vis tibi omnia subjicere, te subjice rationi  

в начало страницы | новое
 
Поиск
Поддержка
Поддержи форум!
ЯндексЯндекс. ДеньгиХочу такую же кнопку
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru