Ngundhuh torrent 16GB liwat tablet kanthi ruang kosong 4GB

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

  1. miwiti ngundhuh torrent ing piranti pisanan
  2. ngenteni nganti ROM diisi
  3. ngaso download
  4. nransfer file menyang piranti kaloro lan nambah nomer kanggo jeneng berkas
  5. 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:

  1. Maca kabeh bagean bebarengan
  2. 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.

--]]
                    local start_index = out_part:find(" ", find_index, true)
                    find_index = start_index + #zero_string

--[[

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.

digunakake:

  1. Klien torrent Flud ing tablet.
  2. Klien Torrent qBittorent ing PC.
  3. skrip Lua

Source: www.habr.com

Add a comment