Ngundeur torrent 16GB liwat tablet anu gaduh rohangan bébas 4GB

Ngundeur torrent 16GB liwat tablet anu gaduh rohangan bébas 4GB

Tugas:

Aya PC tanpa Internét, tapi kasebut nyaéta dimungkinkeun pikeun mindahkeun file via USB. Aya tablet sareng Internét tina mana file ieu tiasa ditransfer. Anjeun tiasa ngaunduh torrent anu diperyogikeun dina tablet anjeun, tapi teu aya rohangan anu cukup. Berkas dina torrent mangrupikeun hiji sareng ageung.

Jalur pikeun solusi:

Kuring ngamimitian torrent pikeun ngundeur. Nalika rohangan bébas ampir musna, kuring ngareureuhkeun undeuran. Kuring nyambungkeun tablet ka PC sareng mindahkeun file tina tablet ka PC. Kuring direureuhkeun jeung reuwas kuring file dijieun deui jeung torrent terus ngundeur saolah-olah euweuh kajadian.

Kusabab kanyataan yén klien torrent nyetél bandéra sparse kana file anu nyerat data anu ditampi, sistem henteu nyobian cagar 16GB sakaligus sareng kasalahan moal lumangsung nalika nyobian nyerat kana file anu langkung ti 4GB.

Saatos ngulang prosedur opat kali, kuring nampi opat file dina PC kuring anu ngandung bagian anu béda tina torrent anu sami. Ayeuna sadayana anu tetep nyaéta pikeun ngahijikeun aranjeunna. Prosedur ieu dasarna basajan. Anjeun kedah ngagentos nol bait sareng nilai anu sanés upami aya dina posisi anu dipasihkeun dina salah sahiji tina opat file.

Sigana mah yén program saderhana sapertos kitu kedah aya dina Internét. Teu aya anu kantos ngalaman masalah sapertos kitu? Tapi kuring sadar yén kuring henteu terang naon kecap konci pikeun milarianana. Ku alatan éta, kuring gancang nyieun skrip Lua pikeun tugas ieu sareng ayeuna kuring parantos ngaoptimalkeunana. Ieu anu abdi hoyong bagikeun.

Ngundeur torrent sabagian

  1. mimitian ngundeur torrent dina alat munggaran
  2. antosan dugi ROM kaeusi
  3. ngareureuhkeun undeuran
  4. mindahkeun file ka alat kadua teras tambahkeun nomer kana nami file
  5. urang balik deui ka titik kahiji dugi file diundeur lengkep

Ngagabungkeun bagian kana hiji file

Sanggeus bagian panungtungan geus narima, perlu pikeun ngumpulkeun kana hiji sakabéh file.

Tugasna saderhana:

  1. Maca sadaya bagian sakaligus
  2. Upami dina sababaraha bagian posisina sanés nol bait, teras urang nyerat kana kaluaran, upami henteu, urang nyerat nol

fungsi merge_part narima Asép Sunandar Sunarya ti threads streams_in nu maca bagian tina ukuran buffer_length sarta mulih hasil merging bagian tina threads béda.

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 cocog pikeun tugas sabab bakal manggihan potongan ngeusi enol jeung nganteurkeun naon dibikeun ka eta.

--]]
                out_part = out_part:gsub(" +", function(zero_string)

                    if #in_part < find_index then
                        return -- не на что менять
                    end
--[[

string.gsub teu nepikeun posisi di mana pertandingan ieu kapanggih. Ku alatan éta, urang ngalakukeun pilarian paralel pikeun posisi zero_string ngagunakeun fungsi string.find. Ieu cukup pikeun manggihan nu nol bait munggaran.

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

--[[

Ayeuna lamun di in_part aya data pikeun out_part nyalin aranjeunna.

--]]
                    if #in_part >= start_index then
                        local end_index = start_index + #zero_string - 1
--[[

Potong tina in_part bagian pakait jeung runtuyan nol.

--]]
                        local part = in_part:sub(start_index, end_index)

                        if (part:byte(1) ~= 0) or part:find("[^ ]") then
--[[

В part aya datana.

--]]
                            if #part == #zero_string then
                                return part
                            else
--[[

part tétéla kirang ti runtuyan nol. Hayu urang suplement ku aranjeunna.

--]]
                                return part..zero_string:sub(1, end_index - #in_part)
                            end
                        end
                    end
                end)
            end
        end
    end
    return out_part
end

kacindekan

Ku kituna, urang bisa ngundeur tur ngumpul file ieu dina PC. Saatos ngahiji, kuring ngaluarkeun file torrent tina tablet. Kuring masang klien torrent dina PC kuring sareng pariksa filena.

Bagian anu diunduh anu terakhir dina tablet tiasa ditinggalkeun dina distribusi, tapi anjeun kedah ngaktipkeun parios deui bagian sateuacan ieu sareng pupus centang file supados henteu diunduh deui.

dipaké:

  1. Klién torrent Flud dina tablet.
  2. Klién Torrent qBittorent dina PC.
  3. Aksara Lua

sumber: www.habr.com

Tambahkeun komentar