Ngundhuh torrent 16GB liwat tablet kanthi ruang kosong 4GB
Tugas:
Ana PC tanpa Internet, nanging bisa nransfer file liwat USB. Ana tablet karo Internet saka ngendi file iki bisa ditransfer. Sampeyan bisa ndownload torrent sing dibutuhake ing tablet, nanging ora ana ruang kosong sing cukup. File ing torrent siji lan gedhe.
Path kanggo solusi:
Aku miwiti torrent kanggo ngundhuh. Nalika papan kosong meh ilang, aku ngaso download. Aku nyambungake tablet menyang PC lan mindhah file saka tablet menyang PC. Aku ngaso lan kaget file digawe maneh lan torrent terus ngundhuh kaya-kaya ora ana apa-apa.
Amarga kasunyatan manawa klien torrent nyetel bendera jarang menyang file sing nulis data sing ditampa, sistem kasebut ora nyoba nyimpen 16GB sekaligus lan kesalahan ora bakal kedadeyan nalika nyoba nulis menyang file ngluwihi 4GB.
Sawise mbaleni prosedur kaping papat, aku nampa papat file ing PC sing ngemot macem-macem bagean saka torrent sing padha. Saiki sing isih ana yaiku kanggo nggabungake. Prosedur iki ateges prasaja. Sampeyan kudu ngganti bita nol karo nilai liyane yen ana ing posisi tartamtu ing salah siji saka papat file.
Iku ketoke kanggo kula sing program prasaja kuwi kudu ing Internet. Apa ora ana sing nate nemoni masalah kaya ngono? Nanging aku nyadari yen aku ora ngerti tembung kunci apa sing kudu digoleki. Mulane, aku cepet nggawe skrip Lua kanggo tugas iki lan saiki aku wis ngoptimalake. Iki aku arep nuduhake.
Ngundhuh torrent ing bagean
miwiti ngundhuh torrent ing piranti pisanan
ngenteni nganti ROM diisi
ngaso download
nransfer file menyang piranti kaloro lan nambah nomer kanggo jeneng berkas
kita bali menyang titik pisanan nganti file diundhuh rampung
Nggabungake bagean dadi siji file
Sawise bagean pungkasan wis ditampa, iku perlu kanggo ngumpulake menyang siji file kabèh.
Tugas iku prasaja:
Maca kabeh bagean bebarengan
Yen ing sawetara bagean posisi ora bait nul, banjur kita nulis menyang output, digunakake nulis nul
fungsi merge_part nampa array saka Utas streams_in kang maca bagean saka ukuran buffer_length lan ngasilake asil gabung bagean saka Utas beda.
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
--[[
fungsi string.gsub cocok kanggo tugas amarga bakal nemokake bêsik kapenuhan nul lan ngirim apa diwenehi kanggo.
--]]
out_part = out_part:gsub(" +", function(zero_string)
if #in_part < find_index then
return -- не на что менять
end
--[[
string.gsub ora ngirim posisi ing kang match ketemu. Mulane, kita nindakake panelusuran paralel kanggo posisi kasebut zero_string nggunakake fungsi string.find. Iku cukup kanggo nemokake bait nul pisanan.
Saiki yen ing in_part ana data kanggo out_part nyalin mau.
--]]
if #in_part >= start_index then
local end_index = start_index + #zero_string - 1
--[[
Cut saka in_part bagean sing cocog karo urutan nul.
--]]
local part = in_part:sub(start_index, end_index)
if (part:byte(1) ~= 0) or part:find("[^ ]") then
--[[
В part ana data.
--]]
if #part == #zero_string then
return part
else
--[[
part dadi kurang saka urutan nul. Ayo ditambahake karo dheweke.
--]]
return part..zero_string:sub(1, end_index - #in_part)
end
end
end
end)
end
end
end
return out_part
end
kesimpulan
Mangkono, kita bisa ngundhuh lan ngumpulake file iki ing PC. Sawise penggabungan, aku narik file torrent saka tablet. Aku nginstal klien torrent ing PC lan mriksa file kasebut.
Bagean sing diundhuh pungkasan ing tablet bisa ditinggalake ing distribusi, nanging sampeyan kudu ngaktifake mriksa maneh bagean kasebut sadurunge lan busak centhang file kasebut supaya ora diunduh maneh.