Tniżżil ta' torrent ta' 16GB permezz ta' tablet b'4GB ta' spazju ħieles
Kompitu:
Hemm PC mingħajr l-Internet, iżda huwa possibbli li tittrasferixxi l-fajl permezz tal-USB. Hemm pillola bl-Internet li minnha jista 'jiġi trasferit dan il-fajl. Tista 'tniżżel it-torrent meħtieġ fuq il-pillola tiegħek, iżda m'hemmx biżżejjed spazju ħieles. Il-fajl fit-torrent huwa wieħed u kbir.
Mogħdija għas-soluzzjoni:
Bdejt it-torrent biex tniżżel. Meta l-ispazju ħieles kien kważi marret, waqqaft it-tniżżil. I konnessi l-tablet mal-PC u mċaqalqa l-fajl mill-tablet għall-PC. Waqaft ftit u b'sorpriża tiegħi reġa' nħoloq il-fajl u t-torrent kompla jniżżel bħallikieku ma ġara xejn.
Minħabba l-fatt li l-klijent tat-torrent jistabbilixxi l-bandiera skarsa għall-fajl li fih jikteb id-dejta riċevuta, is-sistema ma tippruvax tirriserva 16GB f'daqqa u żball mhux se jseħħ meta tipprova tikteb f'fajl lil hinn minn 4GB.
Wara li rrepeti l-proċedura erba 'darbiet, irċevejt erba' fajls fuq il-PC tiegħi li fihom partijiet differenti tal-istess torrent. Issa li jibqa’ biss li ngħaqqduhom flimkien. Il-proċedura hija essenzjalment sempliċi. Għandek bżonn tissostitwixxi l-bytes żero b'valur ieħor jekk teżisti f'pożizzjoni partikolari f'wieħed mill-erba' fajls.
Deherli li programm sempliċi bħal dan għandu jkun fuq l-Internet. Ħadd qatt iltaqa’ ma’ problema bħal din? Imma rrealizzajt li lanqas biss naf liema keywords infittex għaliha. Għalhekk, ħloqt malajr script Lua għal dan il-kompitu u issa ottimizzajtu. Dan huwa dak li rrid naqsam.
Niżżel it-torrent f'partijiet
ibda tniżżel it-torrent fuq l-ewwel apparat
stenna sakemm timtela r-ROM
waqqaf it-tniżżil
ittrasferixxi l-fajl għat-tieni apparat u żid numru mal-isem tal-fajl
nerġgħu lura għall-ewwel punt sakemm il-fajl jitniżżel kompletament
Jingħaqdu partijiet f'fajl wieħed
Wara li tkun waslet l-aħħar parti, huwa meħtieġ li jinġabru f'fajl wieħed sħiħ.
Il-kompitu huwa sempliċi:
Qari l-partijiet kollha f'daqqa
Jekk f'xi parti l-pożizzjoni mhix byte żero, allura niktbuha fl-output, inkella niktbu żero
Funzjoni merge_part jaċċetta firxa ta 'ħjut streams_in li minnhom jaqra porzjon tad-daqs buffer_length u jirritorna r-riżultat ta 'partijiet li jingħaqdu minn ħjut differenti.
function merge_part(streams_in, buffer_length)
local out_part
for _, stream in ipairs(streams_in) do
local in_part = stream:read(buffer_length)
if not out_part then
out_part = in_part -- просто копируем часть из первого файла
elseif in_part and #in_part > 0 then
if #out_part < #in_part then
out_part, in_part = in_part, out_part
end
if out_part ~= in_part -- данные различаются
and in_part:find("[^ ]") -- есть данные в in_part
and out_part:find(" ", 1, true) -- есть пустые места в out_part
then
local find_index = 1
--[[
Funzjoni string.gsub huwa adattat għall-kompitu għax se jsib biċċiet mimlija żerijiet u jagħti dak li jingħatalu.
--]]
out_part = out_part:gsub(" +", function(zero_string)
if #in_part < find_index then
return -- не на что менять
end
--[[
string.gsub ma jwassalx il-pożizzjoni li fiha nstabet it-taqbila. Għalhekk, nagħmlu tfittxija parallela għall-pożizzjoni zero_string bl-użu tal-funzjoni string.find. Huwa biżżejjed li ssib l-ewwel byte żero.
Issa jekk fi in_part hemm data għal out_part kopjahom.
--]]
if #in_part >= start_index then
local end_index = start_index + #zero_string - 1
--[[
Aqta minn in_part parti li tikkorrispondi għas-sekwenza ta 'żeri.
--]]
local part = in_part:sub(start_index, end_index)
if (part:byte(1) ~= 0) or part:find("[^ ]") then
--[[
В part hemm data.
--]]
if #part == #zero_string then
return part
else
--[[
part irriżulta li kien inqas minn sekwenza ta’ żerijiet. Ejja nissupplimentawha magħhom.
--]]
return part..zero_string:sub(1, end_index - #in_part)
end
end
end
end)
end
end
end
return out_part
end
Konklużjoni
Għalhekk, stajna tniżżel u niġbru dan il-fajl fuq PC. Wara l-għaqda, ħriġt il-fajl tat-torrent mit-tablet. Installajt klijent tat-torrent fuq il-PC tiegħi u ċċekkja l-fajl miegħu.
L-aħħar parti mniżżla fuq il-pillola tista 'titħalla fuq id-distribuzzjoni, iżda trid tippermetti l-iċċekkjar mill-ġdid tal-partijiet qabel dan u neħħi l-kontroll tal-fajl sabiex ma jerġax tniżżel.