myDC.ru

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

 
 
Тема закрытаНачать новую тему

> Скрипт Сохраняющий Данные В Xml, API2

Теги
Нет тегов для показа
Lpein
сообщение 8.3.2009, 15:10
Сообщение #1


Участник
**

Группа: Пользователи
Сообщений: 35
Регистрация: 2.12.2008
Пользователь №: 1 278
Спасибо сказали: 0 раз




Нужен скрипт который сохранял данные: имя хаба, топик, описание, кол-во юзеров онлайн, общяя шара, пользователи на хабе онлайн (и рядом шара), админы онлайн, время работы хаба, и свои введённые в скрипт данные в XML файл. А также в отдельный файл чат, тоже в фотмате XML. Если всё из выше перечисленного невозможно, то хотябы что возможно). Какой от этого толк? Дело в том, что и веб формы, и отдельные проги умеют читать данные из XML формата. Это очень удобно, если тебе надо вывести куда нибуть инфу.
Go to the top of the page
+Quote Post
MEXAHuK
сообщение 8.3.2009, 15:19
Сообщение #2


Освоившийся участник
*****

Группа: Пользователи
Сообщений: 314
Регистрация: 13.10.2008
Пользователь №: 791
Спасибо сказали: 9 раз




есть скрипт StatPx делает всё тоже самое. ищи
Go to the top of the page
+Quote Post
Lpein
сообщение 8.3.2009, 15:28
Сообщение #3


Участник
**

Группа: Пользователи
Сообщений: 35
Регистрация: 2.12.2008
Пользователь №: 1 278
Спасибо сказали: 0 раз




Редактировать скрипт StatPx для меня - глупо. В lua я ноль. Мне нужен простой, без лишнеко кода скрипт, так что StatPx не неподходит.
Go to the top of the page
+Quote Post
MEXAHuK
сообщение 8.3.2009, 15:53
Сообщение #4


Освоившийся участник
*****

Группа: Пользователи
Сообщений: 314
Регистрация: 13.10.2008
Пользователь №: 791
Спасибо сказали: 9 раз




учи Луа. так как в природе нет такого скрипта с таким функционалом. и без знания Луы не напишешь.
Go to the top of the page
+Quote Post
Lpein
сообщение 8.3.2009, 16:09
Сообщение #5


Участник
**

Группа: Пользователи
Сообщений: 35
Регистрация: 2.12.2008
Пользователь №: 1 278
Спасибо сказали: 0 раз




Цитата(MEXAHuK @ 8.3.2009, 15:53) *
учи Луа. так как в природе нет такого скрипта с таким функционалом. и без знания Луы не напишешь.


Поэтому я и обратился за помощью в этот раздел.
Go to the top of the page
+Quote Post
MEXAHuK
сообщение 9.3.2009, 7:58
Сообщение #6


Освоившийся участник
*****

Группа: Пользователи
Сообщений: 314
Регистрация: 13.10.2008
Пользователь №: 791
Спасибо сказали: 9 раз




поступай как я: ьери скрипт любой простой. и начни его чуток изменять под себя начиная с профилей. потом расширяй его функционал копируя функции из других скриптов.
все так начинали
есть поговорка: "Через задницу к звёздам". Удачи!
Go to the top of the page
+Quote Post
alex82
сообщение 9.3.2009, 10:25
Сообщение #7


Местный
*******

Группа: Неактивированные
Сообщений: 908
Регистрация: 26.12.2008
Пользователь №: 1 574
Спасибо сказали: 1406 раз




Lpein

Изобрази как это должно выглядеть.
Go to the top of the page
+Quote Post
Setuper
сообщение 9.3.2009, 12:21
Сообщение #8


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

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




Полый синтаксис xml нужно предоставить.
Go to the top of the page
+Quote Post
Lpein
сообщение 9.3.2009, 22:40
Сообщение #9


Участник
**

Группа: Пользователи
Сообщений: 35
Регистрация: 2.12.2008
Пользователь №: 1 278
Спасибо сказали: 0 раз




Цитата(Setuper @ 9.3.2009, 12:21) *
Полый синтаксис xml нужно предоставить.


Надесью правильно тебя понял.

CODE
<?xml version="1.0" encoding="UTF-8"?><hub>
<hub_name>имя хаба</hub_name>
<topik>топик</topik>
<description>описание</description>
<users>кол-во юзеров онлайн</users>
<shara>общяя шара</shara>
<admins_online>админы онлайн</admins_online>
<hub_online>время работы хаба</hub_online>
<info>своя инфа</info>
</hub>


Файл с чатом (выводится 9 последних строкс чата хаба):

CODE
<?xml version="1.0" encoding="UTF-8"?><chat>
<1>[21:29:10] <белый> кто живой</1>
<2>[21:29:11] <белый> кто живой</2>
<3>[21:29:12] <белый> кто живой</3>
<4>[21:29:13] <белый> кто живой</4>
<5>[21:29:14] <белый> кто живой</5>
<6>[21:29:15] <белый> кто живой</6>
<7>[21:29:16] <белый> кто живой</7>
<8>[21:29:17] <белый> кто живой</8>
<9>[21:29:18] <белый> кто живой</9>
</chat>


(это пример)
Go to the top of the page
+Quote Post
Setuper
сообщение 9.3.2009, 22:52
Сообщение #10


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

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




нет, не правильно ты меня понял.

ты предоставил примеры, некоторые даже не xml. Данные примеры воплощают далеко не весь синтаксис xml. Или тебе полный xml не надо, а нужно только по эти примеры реализацию?
Go to the top of the page
+Quote Post
Lpein
сообщение 9.3.2009, 23:46
Сообщение #11


Участник
**

Группа: Пользователи
Сообщений: 35
Регистрация: 2.12.2008
Пользователь №: 1 278
Спасибо сказали: 0 раз




Поправил. Теперь нормально?
Go to the top of the page
+Quote Post
Setuper
сообщение 10.3.2009, 0:51
Сообщение #12


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

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




Код
<5>[21:29:14] <белый> кто живой</5>
Это не xml!
Где закрывающийся тэг для тэга <белый>?

Правильно будет так:
Код
<5>[21:29:14] <белый/> кто живой</5>

Или же так:
Код
<5>[21:29:14] <белый></белый> кто живой</5>

Или так:
Код
<5>[21:29:14] &lt;белый&gt; кто живой</5>


Либо тебе не совсем xml нужен, либо я не знаю что тебе нужно.
Go to the top of the page
+Quote Post
Lpein
сообщение 10.3.2009, 1:26
Сообщение #13


Участник
**

Группа: Пользователи
Сообщений: 35
Регистрация: 2.12.2008
Пользователь №: 1 278
Спасибо сказали: 0 раз




тогда чат ненадо, хватит и первого xml`а
Go to the top of the page
+Quote Post
alex82
сообщение 10.3.2009, 11:53
Сообщение #14


Местный
*******

Группа: Неактивированные
Сообщений: 908
Регистрация: 26.12.2008
Пользователь №: 1 574
Спасибо сказали: 1406 раз




А для чего оно тебе, если не секрет?
Go to the top of the page
+Quote Post
Setuper
сообщение 10.3.2009, 12:22
Сообщение #15


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

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




Функция для сохранения в один вариант xml файла:
Код
local function ST(t, f, c)
  for i, j in pairs(t) do
    if type(j)=="table" then
      f:write(string.rep("\t",c).."<"..tostring(i)..">\n")
      c=c+1
      ST(j, f, c)
      c=c-1
      f:write(string.rep("\t",c).."</"..tostring(i)..">\n")
    elseif tostring(j) and tostring(j)~="" then
      f:write(string.rep("\t",c).."<"..tostring(i)..">"..tostring(j).."</"..tostring(i)..">\n")
    end
  end
end

function SaveToXml(sFile, tTable, sStr)
  local h = io.open(sFile, "w")
  if h then
    if sStr and tostring(sStr) then
      h:write(string.format("%q", tostring(sStr)).."\n")
    else
      h:write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n")
    end
    ST(tTable, h, 0)
    h:flush()
    h:close()
    return true
  end
end


Использование:
Код
tTab = {
  hub = {
    hub_name = "имя хаба",
    topik = "топик",
    description = "описание",
    users = "кол-во юзеров онлайн",
    shara = "общяя шара",
    admins_online = "админы онлайн",
    hub_online = "время работы хаба",
    info = "своя инфа",
  }
}

SaveToXml("test.xml", tTab)
Go to the top of the page
+Quote Post
Nickolya
сообщение 10.3.2009, 13:52
Сообщение #16


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

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




Мои маленькие наброски, может пригодиться, думаю надо обязательно включить в функцию замену < > " ' &

CODE
newrow = "\r\n"

string.g = function(sData, s1, s2)
return sData:gsub(s1, Return(s2))
end

tNeedGusbsForXml = {
["<"] = "<",
[">"] = ">",
["'"] = "&apos;",
["\""] = "&quot;",
}

function Save(tTable, sTableName)
local sData = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"..newrow
sData = sData..SerializeToString(tTable, sTableName, sTab)
return sData
end

function Return(sData)
if type(sData) == "function" then
return sData
end
return function()
return sData
end
end

function NeedGusbsForXml(sData)
sData = tostring(sData) or ""
sData = sData:g("&", "&")
for w, t in pairs(tNeedGusbsForXml) do
sData = sData:g(w, t)
end
return sData
end

function SerializeToString(tTable, sTableName, sTab)
local sTab = sTab or ""
sTableName = NeedGusbsForXml(sTableName)
local sTmp = sTab.."<"..sTableName..">"..newrow
for key, value in pairs(tTable) do
local sKey = NeedGusbsForXml(key)
if type(value) == "table" then
sTmp = sTmp..SerializeToString(value, sKey, sTab.."\t")
else
local sValue = NeedGusbsForXml(value)
sTmp = sTmp..sTab.."\t<"..sKey..">"..sValue.."</"..sKey..">"..newrow
end
end
sTmp = sTmp..sTab.."</"..sTableName..">"..newrow
return sTmp
end

tTable = {
strings = {},
bools = {},
nums = {},
}
for i = 0, 34 do
tTable.strings[i] = SetMan.GetString(i) or ""
end
for i = 0, 113 do
tTable.nums[i] = SetMan.GetNumber(i)-- or ""
end
for i = 0, 55 do
tTable.bools[i] = SetMan.GetBool(i) or "false"
end

Core.SendToAll(Save(tTable, "HubConfig"))

Результат примерно такой:
CODE
<?xml version="1.0" encoding="UTF-8"?>
<HubConfig>
<nums>
<1>0</1>
<2>0</2>
<3>0</3>
<4>0</4>
<5>0</5>
<6>0</6>
<7>0</7>
<8>0</8>
<9>0</9>
<10>0</10>
<11>1</11>
<12>300</12>
<13>5</13>
<14>512</14>
<15>25</15>
<16>20</16>
<17>100</17>
<18>30</18>
<19>20</19>
<20>20</20>
<21>2</21>
<22>5</22>
<23>60</23>
<24>2</24>
<25>2</25>
<26>2</26>
<27>3</27>
<28>10</28>
<29>10</29>
<30>2</30>
<31>5</31>
<32>60</32>
<33>2</33>
<34>2</34>
<35>2</35>
<36>3</36>
<37>2</37>
<38>10</38>
<39>1</39>
<40>1</40>
<41>60</41>
<42>1</42>
<43>6</43>
<44>60</44>
<45>2</45>
<46>1</46>
<47>120</47>
<48>3</48>
<49>10</49>
<50>60</50>
<51>6</51>
<52>2</52>
<53>240</53>
<54>20</54>
<55>10</55>
<56>10</56>
<57>2</57>
<58>1</58>
<59>96</59>
<60>2</60>
<61>64</61>
<62>1</62>
<63>24</63>
<64>100</64>
<65>25</65>
<66>120</66>
<67>600</67>
<68>3</68>
<69>60</69>
<70>300</70>
<71>3</71>
<72>31</72>
<73>300</73>
<74>3</74>
<75>30</75>
<76>900</76>
<77>3</77>
<78>256</78>
<79>500</79>
<80>60</80>
<81>1</81>
<82>5000</82>
<83>600</83>
<84>0</84>
<85>250</85>
<86>60</86>
<87>1</87>
<88>2500</88>
<89>600</89>
<90>3</90>
<91>128</91>
<92>160</92>
<93>1000</93>
<94>60</94>
<95>1</95>
<96>10000</96>
<97>600</97>
<98>0</98>
<99>1024</99>
<100>4</100>
<101>128</101>
<102>60</102>
<103>5</103>
<104>256</104>
<105>300</105>
<106>5</106>
<107>10</107>
<108>5</108>
<109>10</109>
<110>5</110>
<111>60</111>
<112>5</112>
<113>10</113>
<0>250</0>
</nums>
<bools>
<1>true</1>
<2>false</2>
<3>false</3>
<4>false</4>
<5>false</5>
<6>false</6>
<7>false</7>
<8>false</8>
<9>false</9>
<10>false</10>
<11>true</11>
<12>false</12>
<13>false</13>
<14>false</14>
<15>false</15>
<16>false</16>
<17>false</17>
<18>true</18>
<19>false</19>
<20>false</20>
<21>false</21>
<22>true</22>
<23>true</23>
<24>false</24>
<25>true</25>
<26>true</26>
<27>true</27>
<28>true</28>
<29>true</29>
<30>false</30>
<31>true</31>
<32>false</32>
<33>false</33>
<34>false</34>
<35>false</35>
<36>false</36>
<37>true</37>
<38>false</38>
<39>false</39>
<40>true</40>
<41>true</41>
<42>false</42>
<43>true</43>
<44>false</44>
<45>true</45>
<46>true</46>
<47>true</47>
<48>true</48>
<49>true</49>
<50>true</50>
<51>true</51>
<52>true</52>
<53>true</53>
<54>false</54>
<55>false</55>
<0>false</0>
</bools>
<strings>
<1>Admin</1>
<2>192.168.0.10</2>
<3>1209;411</3>
<4>0</4>
<5><Enter hub description here></5>
<6></6>
<7>reg.hublist.org;serv.hubs-list.com;hublist.cz;hublist.dreamland-net.eu;allhublista.myip.hu;hubinfo.myip.hu;publichublist-nl.no-ip.org;reg.hublist.dk</7>
<8>Sorry, this hub is only for registered users.</8>
<9></9>
<10></10>
<11>Your share is outside the limits. Min share is %[min], max share is %[max].</11>
<12></12>
<13>Your slots count is outside the limits. Min slots limit is %[min], max slots limit is %[max].</13>
<14></14>
<15>Your hubs/slots ratio outside the limit. Maximum allowed ratio is %[hubs]/%[slots].</15>
<16></16>
<17>Your hubs count is higher than allowed %[hubs] hubs.</17>
<18></18>
<19>Your client don&apos;t send description tag, or your client is not supported here.</19>
<20></20>
<21>PtokaX</21>
<22></22>
<23></23>
<24>OpChat</24>
<25></25>
<26></26>
<27></27>
<28></28>
<29>!+-/*</29>
<30></30>
<31>Your nick length is outside the limit. Allowed min is %[min] and max %[max].</31>
<32></32>
<33></33>
<34>Russian</34>
<0>RDW</0>
</strings>
</HubConfig>


surrender.gif
Go to the top of the page
+Quote Post
alex82
сообщение 10.3.2009, 14:09
Сообщение #17


Местный
*******

Группа: Неактивированные
Сообщений: 908
Регистрация: 26.12.2008
Пользователь №: 1 574
Спасибо сказали: 1406 раз




А почему бы действительно не использовать StatPX?

Для примера приведу шаблон списка онлайн юзеров:
Код
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Online>
[ROW_BEGIN]    <User Nick="[NICK]" Share="[SHARE]" Client="[CLIENT]" Mode="[MODE]" Hubs="[HUBS]" Slots="[SLOTS]" />
[ROW_END]</Online>

Результат работы скрипта совместно с этим шаблоном примерно такой:
Код
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Online>
    <User Nick="alex82" Share="407.869 GB" Client="StrongDC++ 2.21" Mode="Актив" Hubs="4" Slots="2/0/2" />
    <User Nick="alexxx" Share="407.869 GB" Client="StrongDC++ 2.21" Mode="Актив" Hubs="4" Slots="2/0/2" />
    <User Nick="www" Share="407.869 GB" Client="StrongDC++ 2.21" Mode="Актив" Hubs="4" Slots="2/0/2" />
</Online>
Go to the top of the page
+Quote Post
Lpein
сообщение 10.3.2009, 21:02
Сообщение #18


Участник
**

Группа: Пользователи
Сообщений: 35
Регистрация: 2.12.2008
Пользователь №: 1 278
Спасибо сказали: 0 раз




Всем спасибо за помощь, буду делать!

PS Кстати, StatPX действительно можно использовать. Сначала о нём мысли были другие, казалось, что там всё намного сложнее. Оказывается нет.
Go to the top of the page
+Quote Post
Setuper
сообщение 12.3.2009, 0:46
Сообщение #19


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

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




Иногда стоит присмотреться и сложное окажется очень простым)))

Закрыто.
Go to the top of the page
+Quote Post

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

Collapse

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

  Тема Ответов Автор Просмотров Последнее сообщение
No new Topic has attachmentsНерабочий скрипт ВИПа по шаре
16 Damaks 18 720 23.2.2023, 7:16 Посл. сообщение: mod
No new Topic has attachmentsMagneto - Бесплатный Скрипт Портала Обмена Dc-ссылками Для Локальной Сети
26 UserSide 39 601 27.8.2019, 11:01 Посл. сообщение: CyberGhost404
No New Posts От: Новогодний Скрипт
От темы с ID: 871
0 Евгений 2 843 15.10.2018, 21:44 Посл. сообщение: Евгений
No New Posts А бывают такой скрипт бота?
Скрипт который создает виртуалных юзеров, но с реальными шарами
5 MarkDark 7 440 26.12.2017, 10:47 Посл. сообщение: мамин_парень
No New Posts Скрипт: Бот который отвечает в лс
4 мамин_парень 7 124 11.11.2017, 5:57 Посл. сообщение: мамин_парень
No New Posts как сделать вот этот скрипт
12 мамин_парень 11 309 13.9.2017, 10:51 Посл. сообщение: dimetro
No New Posts Topic has attachmentsИщу скрипт переадресации (redirect)
Переадресация интернет-юзеров
3 AS_Com 6 711 27.8.2017, 8:05 Посл. сообщение: Ksan
No New Posts Topic has attachmentsСкрипт Thunder.lua
7 Евген76 14 644 9.8.2017, 11:48 Посл. сообщение: Ksan
No New Posts Требуется скрипт
Нужен скрипт запрета на подключение
5 Nikolaevich 8 897 20.8.2016, 19:52 Посл. сообщение: Ksan
No new ВАЖНО: Topic has attachmentsСкрипт банов для RusHub
тестим и комменьтруем
79 Wariner 99 991 28.9.2015, 13:34 Посл. сообщение: NeirRon
No New Posts Скрипт загрузки файла
1 FreeNas 6 051 21.7.2015, 10:58 Посл. сообщение: HackFresse
No new Как вызвать bash скрипт из Lua
14 Iskandark 16 135 3.3.2015, 12:42 Посл. сообщение: Iskandark
No new Topic has attachmentsНовогодний Скрипт
API2
22 Tsd 34 009 12.12.2014, 16:28 Посл. сообщение: Tsd
No New Posts Скрипт запрета видеть чат
запрет видеть чат
2 dimetro 6 881 5.12.2014, 17:37 Посл. сообщение: dimetro
No New Posts Topic has attachmentsпеределать скрипт kinozal.tv
6 BOKOREZ 12 129 30.10.2014, 18:29 Посл. сообщение: Dani_Filth

 



RSS Сейчас: 26.4.2024, 20:00