myDC.ru

Здравствуйте, гость ( Вход | Регистрация )

 
2 страниц V  < 1 2  
Ответить в данную темуНачать новую тему

> Скрипты И Совметимость Операционных Систем, Рабочие файлы скриптов в Unix системах

TiGRpp
сообщение 15.11.2009, 13:43
Сообщение #21


Продвинутый участник
****

Группа: Пользователи
Сообщений: 162
Регистрация: 19.8.2009
Из: Москва
Пользователь №: 4 201
Спасибо сказали: 24 раза




Цитата(Setuper @ 26.5.2009, 18:39) *
Свистопляска с кроссплатформенностью мультистрок.

Переводы строк для различных платформ:
\r\n для DOS формата,
\n - для UNIX формата,
\r - для Mac формата.

У меня под CentOS 5.3 нормально работают скрипты с \r\n
А вот в указании пути потребовалось вводить ДВОЙНОЙ прямой слеш - "//"
Вместе с тем НЕ ВСЕ скрипты, содержащие относительный путь работают.

Из-за некоторых таких скриптов Птоха просто отключается в какой-то момент.

Подскажите КАК заменить относительный путь на абсолютный, к примеру в скрипте AnekBot.lua

Впрочем проблема может быть в ином: скрипт Kinozal_tv.lua не имеет папки с файлами, и в нем не прописан путь к ней, однако, как и с AnekBot.lua, после включения скрипта Птоха через некоторое время отключается полностью.
Go to the top of the page
+Quote Post
Setuper
сообщение 15.11.2009, 18:41
Сообщение #22


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




\r\n в юниксах может работать, тут ничего удивительного нету, однако принято что в юниксах перенос строки это \n. Придерживаясь стандарта, можно в будущем избежать ошибок.

По поводу двойного слеша // - это не так. Как любая юникc система сентос использует одиночный слеш /
Go to the top of the page
+Quote Post
TiGRpp
сообщение 16.11.2009, 6:43
Сообщение #23


Продвинутый участник
****

Группа: Пользователи
Сообщений: 162
Регистрация: 19.8.2009
Из: Москва
Пользователь №: 4 201
Спасибо сказали: 24 раза




\r\n слишком много по всем скриптам у меня, чтобы их изменять на \n для юникса. Напомните, влияет ли такое положение на быстродействие? - в дереве сообщений по теме не просто найти что нужно, а как раскрыть все сообщения, я пока не нашел...big_smile.gif
Касательно двойного слеша: я не помню полностью ситуацию (за неимением достаточных познаний подбирал опытно), но в любом случае скрипты, содержащие в указании пути одиночные прямые и обратные слеши, согласились работать в сентос только с двойным прямым...
Go to the top of the page
+Quote Post
Wariner
сообщение 16.11.2009, 7:51
Сообщение #24


Самый главный активист :-D
***********

Группа: Модераторы
Сообщений: 2 790
Регистрация: 29.6.2008
Из: г. Тула
Пользователь №: 97
Спасибо сказали: 440 раз




Цитата(TiGRpp @ 16.11.2009, 6:43) *
в дереве сообщений по теме не просто найти что нужно, а как раскрыть все сообщения, я пока не нашел...big_smile.gif

найди кнопку опции в верху темы нажи, потом нажми на стандартный вид и будет тебе счастье))))
Go to the top of the page
+Quote Post
TiGRpp
сообщение 16.11.2009, 18:11
Сообщение #25


Продвинутый участник
****

Группа: Пользователи
Сообщений: 162
Регистрация: 19.8.2009
Из: Москва
Пользователь №: 4 201
Спасибо сказали: 24 раза




Цитата(Setuper @ 15.11.2009, 19:41) *
По поводу двойного слеша // - это не так. Как любая юникc система сентос использует одиночный слеш /

Я исправил в скриптах двойной слеш на одинарный...все работает...big_smile.gif

Спасибо.

\r\n вместо \n сильно критично, или можно оставить как есть?
Go to the top of the page
+Quote Post
Setuper
сообщение 16.11.2009, 18:16
Сообщение #26


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Не критично. Чисто соглашение, которое в некоторых системах может иметь и другие представления. Однако \n - это основное, которое поддерживается всеми unix системами без исключения.
Go to the top of the page
+Quote Post
TiGRpp
сообщение 1.12.2009, 12:03
Сообщение #27


Продвинутый участник
****

Группа: Пользователи
Сообщений: 162
Регистрация: 19.8.2009
Из: Москва
Пользователь №: 4 201
Спасибо сказали: 24 раза




Цитата(Wariner @ 30.3.2009, 14:38) *
заменить надо следующие строчки:
Код
path = Core.GetPtokaXPath().."scripts/dats" -- имя папки

gbfile=path.."/guestbook.dat" --имя файлв

nfile=path.."/news.dat" -- директория для файла

rfile=path.."/requests.dat" -- директория для файла

os.execute("mkdir ".."\""..path.."\"")

В данном примере нет завершения: какой именно строкой их заменить? А иллюстрация здесь необходима для объяснения теоретических выкладок.

У меня есть другой пример:
Код
local sScriptsPath = Core.GetPtokaXPath():gsub("/", "\\").."scripts\\"
local sPath = "PM.Offline-No.Gemorroy\\"
local sPostFile = "tPost.tbl"

local sLogFile = "OfflinePostLog.log" -- лог-файл

Я несколько раз прочел все сообщения данной темы, но не смог понять как применить способ sMainPath, sMainSlash = debug.getinfo(1).source:match"^@?(.+([/\\])).-$" в моем случае.
Go to the top of the page
+Quote Post
Nickolya
сообщение 1.12.2009, 12:20
Сообщение #28


Главный ра******й тут...
*********

Группа: Главные администраторы
Сообщений: 1 727
Регистрация: 18.5.2008
Из: RF, 2la
Пользователь №: 1
Спасибо сказали: 776 раз




просто убери
Код
:gsub("/", "\\")
и везде поменяй \\ на /
Go to the top of the page
+Quote Post
TiGRpp
сообщение 1.12.2009, 13:07
Сообщение #29


Продвинутый участник
****

Группа: Пользователи
Сообщений: 162
Регистрация: 19.8.2009
Из: Москва
Пользователь №: 4 201
Спасибо сказали: 24 раза




Цитата(Nickolya @ 1.12.2009, 14:20) *
просто убери
Код
:gsub("/", "\\")
и везде поменяй \\ на /

Спасибо, работает.
Только вот ясности в применении кроссплатформенного метода sMainPath, sMainSlash = debug.getinfo(1).source:match"^@?(.+([/\\])).-$" не прибавилось, которым, надо полагать, можно было заменить указания пути в обоих упомянутых случаях.

Это было б необходимо для какого-нибудь третьего случая, что бы уже править самостоятельно...big_smile.gif
Go to the top of the page
+Quote Post
Setuper
сообщение 1.12.2009, 13:14
Сообщение #30


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




А что тут непонятного?
Функция Core.GetPtokaXPath() есть только а птохе.

А конструкция
Код
sMainPath, sMainSlash = debug.getinfo(1).source:match"^@?(.+([/\\])).-$"
будет работать в любом LUA скрипте. В переменной sMainPath будет содержаться абсолютный путь до интерпретируемого скрипта, а в переменной sMainSlash будет содержаться слеш, кторый используется в вашей системе.
Go to the top of the page
+Quote Post
TiGRpp
сообщение 1.12.2009, 13:18
Сообщение #31


Продвинутый участник
****

Группа: Пользователи
Сообщений: 162
Регистрация: 19.8.2009
Из: Москва
Пользователь №: 4 201
Спасибо сказали: 24 раза




Цитата(Setuper @ 1.12.2009, 15:14) *
А что тут непонятного?
Функция Core.GetPtokaXPath() есть только а птохе.

ммм... это же было написано в теме.
Но теория теорией, а хотелось бы увидеть конкретные примеры замены старого кода этим методом, что б уж вникнуть в суть....
Go to the top of the page
+Quote Post
Setuper
сообщение 1.12.2009, 13:29
Сообщение #32


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Заметьте, что функция Core.GetPtokaXPath() возвращает абсолютный путь выполняемого файла (в данном случае путь до файла PtokaX.exe), а предложенная конструкция возвращает путь до интерпретируемого скрипта.

Например, у нас в папке scripts есть скрипт test.lua. Тогда для того, чтобы определить абсолютный путь, по которому находится этот скрипт, мы можем сделать так:
Цитата
sMainPath = Core.GetPtokaXPath().."scripts/"
или же так:
Код
sMainPath, sMainSlash = debug.getinfo(1).source:match"^@?(.+([/\\])).-$"



Другой пример. В папке scripts находится некая папка folder, и в этой папке folder находится некий файл test2.lua, который мы хотим подключить из скрипта test.lua. В этом случае можно сделать так:
Код
sMainPath = Core.GetPtokaXPath().."scripts/"
sPath2 = sMainPath.."folder/"
dofile(sPath2.."test2.lua")
или же так:
Код
sMainPath, sMainSlash = debug.getinfo(1).source:match"^@?(.+([/\\])).-$"
sPath2 = sMainPath.."folder"..sMainSlash
dofile(sPath2.."test2.lua")


Надеюсь теперь понятны тонкости обращения с тем и другим способом?
Go to the top of the page
+Quote Post
TiGRpp
сообщение 1.12.2009, 14:14
Сообщение #33


Продвинутый участник
****

Группа: Пользователи
Сообщений: 162
Регистрация: 19.8.2009
Из: Москва
Пользователь №: 4 201
Спасибо сказали: 24 раза




Цитата(Setuper @ 1.12.2009, 15:29) *
Надеюсь теперь понятны тонкости обращения с тем и другим способом?

Спасибо, исчерпывающе.
Go to the top of the page
+Quote Post
Ksan
сообщение 2.12.2009, 8:04
Сообщение #34


Белый Волк
*********

Группа: Пользователи
Сообщений: 1 723
Регистрация: 11.9.2008
Из: г.Томск
Пользователь №: 516
Спасибо сказали: 657 раз




Цитата
Надеюсь теперь понятны тонкости обращения с тем и другим способом?

Setuper, ты меня извини, конечно, но ты этот способ - sMainPath, sMainSlash = debug.getinfo(1).source:match"^@?(.+([/\\])).-$" - проталкиваешь уже больше года, наверно, но вот только сейчас снизошёл до объяснения, как применить на практике...Лично я тоже не понимал, как применить. До этого момента. Хотя прекрасно обходился без него, ставя / вместо \\
Go to the top of the page
+Quote Post
Вятич
сообщение 2.2.2011, 22:35
Сообщение #35


Абсолютный новичок


Группа: Пользователи
Сообщений: 2
Регистрация: 31.1.2011
Пользователь №: 8 691
Спасибо сказали: 0 раз




Здравия !
Я пути в скриптах исправил, но они не загружаются на ptokax_0.4.1.2c-2~eglibc_i386.deb
!getscripts показывает,что скрипты есть но не загруженные.
Как их загрузить и проверить правильность написания ?
Может кто выложит рабочие скрипты (на ptokax_0.4.1.2c-2~eglibc_i386.deb) для примера ?
Go to the top of the page
+Quote Post
Ksan
сообщение 3.2.2011, 1:42
Сообщение #36


Белый Волк
*********

Группа: Пользователи
Сообщений: 1 723
Регистрация: 11.9.2008
Из: г.Томск
Пользователь №: 516
Спасибо сказали: 657 раз




По-моему, на безгуйных птоках надо до запуска Птоки открыть файл Scripts.xml и там поставить 1 вместо 0 для каждого названия скрипта вот так:
Цитата
<Enabled>1</Enabled>

Либо попробуй при запущенной Птоке применить команду
Цитата
!startscript <название скрипта>
Go to the top of the page
+Quote Post
Вятич
сообщение 3.2.2011, 2:02
Сообщение #37


Абсолютный новичок


Группа: Пользователи
Сообщений: 2
Регистрация: 31.1.2011
Пользователь №: 8 691
Спасибо сказали: 0 раз




Благодарю за ответ,вопрос решён.
Только скрипт для управления в меню теперь сразу показывает все возможные команды,надо будет другой поискать
А так хорошо бы скрипты для ptokax под линуксом где-то опубликовать
Go to the top of the page
+Quote Post
Ksan
сообщение 3.2.2011, 3:16
Сообщение #38


Белый Волк
*********

Группа: Пользователи
Сообщений: 1 723
Регистрация: 11.9.2008
Из: г.Томск
Пользователь №: 516
Спасибо сказали: 657 раз




Скрипты для Птоки не делятся на линуксовые или иные, они все работают и на линуксах (с учётом оговорок в данной теме), ну и с заменой виндовых библиотек на линуксовые при необходимости.
Go to the top of the page
+Quote Post

2 страниц V  < 1 2
Ответить в данную темуНачать новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

Collapse

> Похожие темы

  Тема Ответов Автор Просмотров Последнее сообщение
No new Topic has attachmentsСкрипты API 2. Защита хаба. Базы TTH
Скрипты защиты от спама, флуда, рекламы, порно
40 GULAM33 43 813 24.5.2015, 16:55 Посл. сообщение: Артём
No New Posts Новые скрипты для птохи - новые вариации на старые темы
4 baltica 8 570 21.5.2013, 5:26 Посл. сообщение: Ksan
No New Posts Перепутал скрипты
Поток сознания с комментариями
5 GULAM33 7 164 20.2.2013, 19:11 Посл. сообщение: Alexey
No New Posts Какие скрипты обычно используют при полноценном хаб-сервере?
6 Yamakasi 10 175 7.2.2013, 17:04 Посл. сообщение: Yamakasi
No New Posts скрипты для птохи 0.4.2.0
1 Mishari 5 770 6.7.2012, 13:07 Посл. сообщение: mariner
No new ВАЖНО: Topic has attachmentsЗапросы на скрипты
35 Дениска 44 726 29.5.2012, 9:07 Посл. сообщение: Артём
No new Topic has attachmentsКак включать скрипты в PtokaX 0.4.1.1
21 pleomax 32 035 13.5.2012, 22:44 Посл. сообщение: Slavich
No New Posts СКРИПТЫ
3 alex2014 6 531 26.1.2012, 17:23 Посл. сообщение: Ameet
No New Posts Нужны скрипты
Искал искал но не нашол
1 Ferb 9 204 28.5.2011, 8:38 Посл. сообщение: Артём
No New Posts Незапускаются скрипты в Ptokax
7 Br@yZeR 11 725 3.5.2011, 9:25 Посл. сообщение: Strannik
No New Posts Сколько места нужно на диске чтобы запустить скрипты ?
1 Br@yZeR 5 752 2.5.2011, 18:59 Посл. сообщение: Ksan
No New Posts От: командные скрипты для установки сервиса RusHub
От темы с ID: 4075
0 Midgard 5 218 3.3.2011, 2:00 Посл. сообщение: Midgard
No New Posts От: Запросы на скрипты
От темы с ID: 1843
2 Alexey 5 683 13.2.2011, 21:13 Посл. сообщение: Alexey
No New Posts Как установить скрипты?=)
Script
9 Lamo 15 238 25.1.2011, 13:52 Посл. сообщение: deposit
No New Posts От: Запросы на скрипты
От темы с ID: 1843
1 Error404 5 235 3.12.2010, 0:55 Посл. сообщение: Saymon21

 



RSS Сейчас: 28.3.2024, 21:05