myDC.ru

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

 
53 страниц V  « < 46 47 48 49 50 > »   
Ответить в данную темуНачать новую тему

> Вопросы Разработчикам Скриптов, вопросы по скриптам (мелкие вопросы)

MIKHAIL
сообщение 26.2.2012, 14:39
Сообщение #941


KEEP CLEAR AT ALL TIMES
****

Группа: Пользователи
Сообщений: 141
Регистрация: 4.9.2011
Из: Беларусь, Минск
Пользователь №: 9 667
Спасибо сказали: 3 раза




Цитирую:
Цитата
"w" - создать пустой файл для записи. Если файл с таким именем уже существует, то его содержание будет удалено, а файл будет рассматриваться как новый пустой файл.
"w+" - создать пустой файл для чтения и записи. Если файл с таким именем уже существует, то его содержание будет удалено, а файл будет рассматриваться как новый пустой файл.

Хотел бы уточнить отличие двух этих режимов: если вначале для создания файла был использован режим "w", то впоследствии я его не смогу прочитать, используя режим "r" (применительно внутри этого одного скрипта и/или в дальнейшем для всех других)? Поскольку написано:
Цитата
"r" - открыть файл для чтения. Файл должен существовать.

Здесь вообще что имеется в виду под чтением/записью: атрибуты файла и/или какие-то возможности дальнейшей работы внутри самого lua-скрипта?

Осмелюсь предположить, что режим "w" просто тупо записывает данные в файл (поверх имеющихся), а "w+" вначале читает содержимое файла, а затем тупо записывает данные в файл поверх прочитанных. Как мне кажется, использование не совсем тех режимов, без которых действительно не обойтись, влияет на быстродействие. Поправьте, если не так.
Go to the top of the page
+Quote Post
AirKobra45
сообщение 26.2.2012, 18:16
Сообщение #942


Активный участник
***

Группа: Пользователи
Сообщений: 94
Регистрация: 2.10.2010
Из: Якутия, г.Нерюнгри
Пользователь №: 7 820
Спасибо сказали: 21 раз




К примеру:
Код
fd = "Привет"sFile = Core.GetPtokaXPath().."scripts/goro/sXML.lua" --путь до файла PtokaX.exe и далее приписываем где создать файл директорию и имя
f = io.open( sFile , "w+" ) --создаём файл sXML.lua (если такой есть он сотрётся)
    f:write(fd) -- пишем то что надо в файл
    f:flush() --сохраняем то что записали
    f:close() -- закрываем файл

если ты указал w а не w+ то во время его использования пока ты не сохранил и не закрыл его ты не сможешь его прочесть
но всегда можно написать
Код
f = io.open( sFile , "r+" )

если ты уже что-то сохранял в файл
А вообще сперва определись как скрипт будет с ним работать и ставь нужный символ

Вот к примеру:
Код
function OnStartup()
Load()
end
function Load()
fd = "Привет мир!"
sFile = Core.GetPtokaXPath().."scripts/Goro5/sXML.lua" --путь до файла PtokaX.exe и далее приписываем где создать файл директорию и имя
local f = io.open( sFile , "w+" ) --создаём файл sXML.lua (если такой есть он сотрётся)
    f:write(fd) -- пишем то что надо в файл
    f:flush() --сохраняем то что записали
    f:close() -- закрываем файл
g = LoadText(sFile)  -- а теперь мы можем его прочитать с помощью этой функции
Core.SendToAll(""..g)
end

function LoadText(sFile)
    local sMsg = ""
    local f = io.open( sFile , "r" )
        if f then
             sMsg = f:read("*all")
            f:close()
        end
    return  sMsg
end

!! Директория для сохранения файла должна существовать!



Спасибо сказали:
Go to the top of the page
+Quote Post
AirKobra45
сообщение 9.3.2012, 5:13
Сообщение #943


Активный участник
***

Группа: Пользователи
Сообщений: 94
Регистрация: 2.10.2010
Из: Якутия, г.Нерюнгри
Пользователь №: 7 820
Спасибо сказали: 21 раз




Я могу заблокировать поиск на хабе для определённых TTH с помощью функции SRArrival(tUser, sData) и UDPSRArrival(tUser, sData)
А возможно ли чтобы пользователь скачавший "список файлов" с другого пользователя не мог уже по этому списку скачать запрещённые TTH? Или тут уже работает связь клиент-клиент и хаб ничего не сможет сделать?
Go to the top of the page
+Quote Post
Setuper
сообщение 9.3.2012, 15:54
Сообщение #944


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

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




Именно так
Go to the top of the page
+Quote Post
AirKobra45
сообщение 9.3.2012, 17:43
Сообщение #945


Активный участник
***

Группа: Пользователи
Сообщений: 94
Регистрация: 2.10.2010
Из: Якутия, г.Нерюнгри
Пользователь №: 7 820
Спасибо сказали: 21 раз




А ТЕПЕРЬ ВОПРОС О ПРОКСИ ЕЩЁ РАЗ
Сделал так
Код
-- connection timeout in seconds
TIMEOUT = 60
-- default port for document retrieval
PORT = 80
-- user agent field sent in request
USERAGENT = socket._VERSION
-- proxy-server
PROXY = "http://свой прокси:и порт"

и это
if PROXY then reqt.proxy = PROXY end

раньше всё норм грузило напрямую теперь страница приходит так:
Код
<html>

<head><title>404 Not Found</title></head>

<body bgcolor="white">

<center><h1>404 Not Found</h1></center>

<hr><center>nginx/0.6.35</center>

</body>

</html>

Вот что я делаю не так? и как мне в самом запросе уж тогда прокси прописать? а не в http.lua
Go to the top of the page
+Quote Post
Saymon21
сообщение 9.3.2012, 17:56
Сообщение #946


Site Reliability Engineer
*********

Группа: Модераторы
Сообщений: 1 772
Регистрация: 27.6.2009
Из: Чувашия, г. Чебоксары
Пользователь №: 3 719
Спасибо сказали: 479 раз




Ты слишком буквально понял, что nginx это прокси сервер. Или, куда ты отправляешь запрос - там ничего нет. big_smile.gif

А в запросе,

Код
local proxy_url="http://url:port"
http = reqire"socket.http"
if proxy_url ~= "" then
http.PROXY = proxy_url
end

Как-то так.
Go to the top of the page
+Quote Post
AirKobra45
сообщение 9.3.2012, 19:49
Сообщение #947


Активный участник
***

Группа: Пользователи
Сообщений: 94
Регистрация: 2.10.2010
Из: Якутия, г.Нерюнгри
Пользователь №: 7 820
Спасибо сказали: 21 раз




У меня получается так:
Код
    local s = require("socket")
    local proxy_url="http://10.222.0.0:222" -- Как только закоментировываю эту строку то всё с моего инета работает а прокси нет..
    local http = require("socket.http")
    if proxy_url ~= "" then
        http.PROXY = proxy_url
    end
    for i,v in pairs(tAddr) do
        if i ~= "addr" then
        local fd,sz,hd = http.request(tAddr[i])
            if fd then
    f = io.open( j.."sXML_"..i..".lua" , "w+" )
    f:write(fd)
    f:flush()
    f:close()
            end
        end
end


Но снова приходит то же что и раньше а не страница :(
Go to the top of the page
+Quote Post
MIKHAIL
сообщение 20.3.2012, 22:49
Сообщение #948


KEEP CLEAR AT ALL TIMES
****

Группа: Пользователи
Сообщений: 141
Регистрация: 4.9.2011
Из: Беларусь, Минск
Пользователь №: 9 667
Спасибо сказали: 3 раза




Хотелось бы узнать, допустимо ли в пути (http://hostname/dir/file.ext) использовать буквы кириллицы?
Код
...
local sMsg,sErr = h.request("http://hostname/dir/file.ext")
...

Например, "http://hostname/директория/файл.ext"... Работать будет также чётко, как и с латиницей?
Go to the top of the page
+Quote Post
AirKobra45
сообщение 21.3.2012, 11:23
Сообщение #949


Активный участник
***

Группа: Пользователи
Сообщений: 94
Регистрация: 2.10.2010
Из: Якутия, г.Нерюнгри
Пользователь №: 7 820
Спасибо сказали: 21 раз




Подскажите пожалуйста вот в чём:
как мне запросить .xml файл с сайта (всё что выше я спрашивал работает! страницы http запрашивает! а вот файлик http://.../../.../main.xml скачать не может)
подскажите как его заарканить (без прокси он скачивается по http запросу а через прокси приходит пустоая страница html)
p.s:
Надо было сразу правильно поставить вопрос
Go to the top of the page
+Quote Post
AirKobra45
сообщение 22.3.2012, 10:57
Сообщение #950


Активный участник
***

Группа: Пользователи
Сообщений: 94
Регистрация: 2.10.2010
Из: Якутия, г.Нерюнгри
Пользователь №: 7 820
Спасибо сказали: 21 раз




Цитата(MIKHAIL @ 21.3.2012, 4:49) *
Хотелось бы узнать, допустимо ли в пути (http://hostname/dir/file.ext) использовать буквы кириллицы?
Код
...
local sMsg,sErr = h.request("http://hostname/dir/file.ext")
...

Например, "http://hostname/директория/файл.ext"... Работать будет также чётко, как и с латиницей?


Посмтори это: Ссылка
а вообще переводи русский текст в utf-8 для запроса


Спасибо сказали:
Go to the top of the page
+Quote Post
MIKHAIL
сообщение 25.3.2012, 21:59
Сообщение #951


KEEP CLEAR AT ALL TIMES
****

Группа: Пользователи
Сообщений: 141
Регистрация: 4.9.2011
Из: Беларусь, Минск
Пользователь №: 9 667
Спасибо сказали: 3 раза




Имеем два скриптовых файла ("file1.lua" и "file2.lua"), в которых есть глобальные строковые переменные (sTmp1 и sTmp2 соответственно), которые, естественно, в процессе работы меняют свои значения.
Скажите, пожалуйста, как в этих скриптах сделать перекрёстный запрос на текущие значения этих переменных (в "file1.lua" прочитать значение sTmp2, а в "file2.lua" прочитать sTmp1 соответственно)?
Go to the top of the page
+Quote Post
Ksan
сообщение 26.3.2012, 4:33
Сообщение #952


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

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




MIKHAIL, если эти 2 файла входят в один скрипт (вызываются при запуске одного скрипта), то нет никаких проблем - работаешь с этими переменными, как родными. Они и есть родные, ибо принадлежат одному скрипту (головному. вызывающему оба файла).
А если переменные принадлежат двум разным скриптам, то это весьма проблемно, если у тебя не Русхаб.


Спасибо сказали:
Go to the top of the page
+Quote Post
AirKobra45
сообщение 26.3.2012, 10:23
Сообщение #953


Активный участник
***

Группа: Пользователи
Сообщений: 94
Регистрация: 2.10.2010
Из: Якутия, г.Нерюнгри
Пользователь №: 7 820
Спасибо сказали: 21 раз




Цитата(MIKHAIL @ 26.3.2012, 3:59) *
Имеем два скриптовых файла ("file1.lua" и "file2.lua"), в которых есть глобальные строковые переменные (sTmp1 и sTmp2 соответственно), которые, естественно, в процессе работы меняют свои значения.
Скажите, пожалуйста, как в этих скриптах сделать перекрёстный запрос на текущие значения этих переменных (в "file1.lua" прочитать значение sTmp2, а в "file2.lua" прочитать sTmp1 соответственно)?

А если двум разным скриптам допиши сохранение переменной в файл как только она меняется в скриптах, а затем просто нужную тебе запроси


Спасибо сказали:
Go to the top of the page
+Quote Post
MIKHAIL
сообщение 27.3.2012, 22:02
Сообщение #954


KEEP CLEAR AT ALL TIMES
****

Группа: Пользователи
Сообщений: 141
Регистрация: 4.9.2011
Из: Беларусь, Минск
Пользователь №: 9 667
Спасибо сказали: 3 раза




Ksan, к сожалению PtokaX... crying.gif
AirKobra45, так и делаю, только вот думал, что есть вариант побыстрее...

Уважаемые, у меня такой вопрос. По окончанию работы функции OnStartup() остаются "отработанные" переменные, которые впоследствии не используются. Возможно ли их убрать, чтобы не ели системные ресурсы?
Go to the top of the page
+Quote Post
AirKobra45
сообщение 1.4.2012, 9:35
Сообщение #955


Активный участник
***

Группа: Пользователи
Сообщений: 94
Регистрация: 2.10.2010
Из: Якутия, г.Нерюнгри
Пользователь №: 7 820
Спасибо сказали: 21 раз




Цитата(MIKHAIL @ 28.3.2012, 4:02) *
Уважаемые, у меня такой вопрос. По окончанию работы функции OnStartup() остаются "отработанные" переменные, которые впоследствии не используются. Возможно ли их убрать, чтобы не ели системные ресурсы?

сборщик мусора добавь
Код
collectgarbage()

Например:
Код
function OnStartup()
.... -- то что у тебя в функции
collectgarbage() -- сборщик мусора
end

Если чего не так говорю меня товарищи более опытные поправят big_smile.gif


Спасибо сказали:
Go to the top of the page
+Quote Post
Setuper
сообщение 1.4.2012, 12:24
Сообщение #956


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

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




Лучше лишний раз не дёргать сбоку мусора, так как эта функция тратит ресурсы процессора. Lua интерпретатор сам время от времени производит сборку мусора, поэтому не нужно об этом так уж заботиться.


Спасибо сказали:
Go to the top of the page
+Quote Post
MIKHAIL
сообщение 1.4.2012, 21:00
Сообщение #957


KEEP CLEAR AT ALL TIMES
****

Группа: Пользователи
Сообщений: 141
Регистрация: 4.9.2011
Из: Беларусь, Минск
Пользователь №: 9 667
Спасибо сказали: 3 раза




Сборщик мусора периодически чистит всё подряд, что не задействовано, вне зависимости от величины этого мусора, или у него есть какой-то порог на очистку?
Go to the top of the page
+Quote Post
AirKobra45
сообщение 2.4.2012, 11:31
Сообщение #958


Активный участник
***

Группа: Пользователи
Сообщений: 94
Регистрация: 2.10.2010
Из: Якутия, г.Нерюнгри
Пользователь №: 7 820
Спасибо сказали: 21 раз




Цитата(MIKHAIL @ 2.4.2012, 3:00) *
Сборщик мусора периодически чистит всё подряд, что не задействовано, вне зависимости от величины этого мусора, или у него есть какой-то порог на очистку?

Раскрывающийся текст

Код
2.10 - Сборщик мусора
Lua осуществляет автоматическое управление памятью. Это означает, что вам не нужно думать о выделении памяти при создании новых объектов и ее освобождении, когда объект становится ненужным. Lua время от времени автоматически запускает процедуру сборки мусора для удаления устаревших объектов (то есть объектов, которые более недоступны из Lua). Сборщик мусора обрабатывает все объекты Lua: таблицы, данные типа userdata, функции, потоки и строки.

В Lua реализован инкрементный сборщик по принципу пометить-очистить. Цикл работы сборщика мусора зависит от двух параметров: пауза сборки мусора и коэффициент шага сборки.

Паузой определяется время между запусками циклов сборки. Большие значения этого параметра делают сборку мусора менее активной. Значения меньше 1 означают, что между запусками циклов сборки паузы нет. При значении 2 сборщик перед следующим запуском ждет удвоения объема использованной памяти.

Коэффициент шага сборки управляет скоростью сборки в зависимости от интенсивности выделения памяти. Большие значения параметра ускоряют работу сборщика, но при этом увеличивается размер каждого шага.

Вы можете менять эти параметры посредством вызова lua_gc в C или collectgarbage в Lua. В обоих случаях в качестве аргументов берутся проценты (т.е. аргумент 100 означает значение параметра 1).Этими функциями вы можете непосредственно управлять сборкой (например, останавливать ее или рестартовать).

2.10.1 - Метаметоды сборщика мусора
Используя C API, мы можем определить метаметоды сборщика для данных типа userdata (смотрите §2.8). Эти метаметоды также называются файнолайзерами. Файнолайзер позволяет вам координировать работу сборщика мусора Lua с внешними менеджерами ресурсов (например при закрытии файлов, сетевых подключений и подключений к базам данных, или же при освобождении собственной памяти).

Данные сборщика мусора с полем __gc в собственной метатаблице не хранятся непосредственно в нем. Вместо этого Lua сохраняет их в списке. После сбора мусора Lua выполняет над этими данными функцию, эквивалентную:

     function gc_event (udata)
       local h = metatable(udata).__gc
       if h then
         h(udata)
       end
     end
После каждого цикла сбора, финализаторы каждого элемента данных вызываются в порядке, обратном порядку их создания в цикле. Таким образом, первый файнолайзер будет вызван для объекта, созданного последним.

2.10.2 - Таблицы «слабых» ссылок
Таблицы этого типа используются для хранения «слабых» ссылок (weak references). Сборщик мусора игнорирует «слабые» ссылки. Другими словами, если единственной ссылкой на объект является «слабая» ссылка, то сборщик мусора сохраняет этот объект в такой таблице.

Таблица «слабых» ссылок может содержать «слабые» ключи, «слабые» значения, а также и то, и другое. Таблица со «слабыми» ключами позволяет хранить эти ключи, но не допускает хранение их значений. Таблица со «слабыми» ключами и «слабыми» значениями соответственно позволяет хранить и ключи, и значения. Таким образом, если ключ или значение сохранены, то соответствующая пара удаляется из таблицы. «Слабость» в таблице контролируется полем __mode ее метатаблицы. Если поле __mode это строка, содержащая символ 'k', то ключи в таблице «слабые». Если __mode содержит 'v', то в таблице хранятся «слабые» значения.

После использования таблицы как метатаблицы вы не можете изменить поле __mode. Таким образом, «слабое» поведение таблицы, за которое отвечает метатаблица, переопределить нельзя.


Скачай справочник по lua для начала или книги по lua благо их предостаточно


Спасибо сказали:
Go to the top of the page
+Quote Post
MIKHAIL
сообщение 22.4.2012, 22:17
Сообщение #959


KEEP CLEAR AT ALL TIMES
****

Группа: Пользователи
Сообщений: 141
Регистрация: 4.9.2011
Из: Беларусь, Минск
Пользователь №: 9 667
Спасибо сказали: 3 раза




Подскажите, пожалуйста, как будет выглядеть процедура проверки на использование клиентом характеристики QuickList при подключении обычного пользователя (UserConnected) в PtokaX API2?
Go to the top of the page
+Quote Post
Alexey
сообщение 22.4.2012, 22:46
Сообщение #960


7 квадратиков
*******

Группа: Модераторы
Сообщений: 793
Регистрация: 21.1.2009
Пользователь №: 1 895
Спасибо сказали: 301 раз




Код
function SupportsArrival(tUser, sData)
    if sData:find"QuickList" then
        Core.SendToOps("Входит пользователь с поддержкой характеристики QuickList: "..tUser.sNick)
    end
end


Спасибо сказали:
Go to the top of the page
+Quote Post

53 страниц V  « < 46 47 48 49 50 > » 
Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

Collapse

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

  Тема Ответов Автор Просмотров Последнее сообщение
No new ВАЖНО: Topic has attachmentsМодули для скриптов RusHub
26 Setuper 43 408 21.3.2017, 17:31 Посл. сообщение: Alexey
No new ВАЖНО: Topic has attachmentsВаши Вопросы И Предложения По Поводу Форума
447 Svyat 304 031 20.10.2015, 19:39 Посл. сообщение: Ksan
No New Posts От: Вопросы Разработчикам Скриптов
От темы с ID: 173
0 MIKHAIL 4 037 23.1.2015, 0:56 Посл. сообщение: MIKHAIL
No new Topic has attachmentsВопросы по протоколу NMDC
Делаю программу
26 Master255 27 606 12.1.2015, 0:38 Посл. сообщение: Master255
No New Posts Вопросы к Phazeus по Экзекутору
Мастер может забанить мастера, как решить в Экзекуторе?
1 AndreiDC 5 025 31.10.2014, 19:20 Посл. сообщение: Ksan
No New Posts От: Установка скриптов
От темы с ID: 5657
0 MIKHAIL 4 487 29.7.2014, 23:37 Посл. сообщение: MIKHAIL
No New Posts Установка скриптов
Нужна помощь по установке
2 _wRz_ 6 824 29.7.2014, 16:11 Посл. сообщение: Артём
No new От: Вопросы Разработчикам Скриптов
От темы с ID: 173
29 Wariner 24 410 28.1.2014, 13:11 Посл. сообщение: Alexey
No new Topic has attachmentsВопросы по RusHub
Технические вопросы
316 Jaska 252 481 19.12.2013, 13:59 Посл. сообщение: mod
No new Topic has attachmentsМелкие вопросы
44 Wariner 48 438 19.9.2013, 12:34 Посл. сообщение: Alexey
No New Posts От: Ваши Вопросы И Предложения По Поводу Форума
От темы с ID: 753
3 anila 8 587 28.3.2013, 16:02 Посл. сообщение: настя
No New Posts Единая платформа для скриптов
Обсуждения вопроса создания единой платформы скриптов
5 Enyby 8 460 18.1.2012, 20:15 Посл. сообщение: Setuper
No new Topic has attachmentsПеределка скриптов
Прошу помощи
47 Fe(one)X 38 819 26.12.2011, 15:04 Посл. сообщение: Ksan
No new Topic has attachmentsВопросы Разработчикам Скриптов с SQL
вопросы по скриптам (мелкие вопросы)
101 Wariner 57 388 6.12.2011, 0:34 Посл. сообщение: Enyby
No New Posts От: Вопросы по RusHub
От темы с ID: 2902
4 Otshelnik-Fm 7 948 19.10.2011, 9:23 Посл. сообщение: Mangust

 



RSS Сейчас: 19.4.2024, 14:55