Telechaje yon torrent 16GB atravè yon tablèt ak 4GB espas gratis

Telechaje yon torrent 16GB atravè yon tablèt ak 4GB espas gratis

Yon travay:

Gen yon PC san Entènèt la, men li posib pou transfere dosye a atravè USB. Gen yon tablèt ak entènèt la ki soti nan ki dosye sa a ka transfere. Ou ka telechaje torrent obligatwa a sou tablèt ou a, men pa gen ase espas gratis. Fichye a nan torrent la se yon sèl ak gwo.

Chemen nan solisyon:

Mwen te kòmanse torrent pou telechaje. Lè espas gratis la te prèske ale, mwen te pran yon poz download la. Mwen konekte tablèt la ak PC a epi mwen deplase dosye a soti nan tablèt la nan PC a. Mwen te pran yon poz ak sipriz mwen te kreye dosye a ankò epi torrent la kontinye telechaje kòm si pa gen anyen ki te rive.

Akòz lefèt ke kliyan an torrent mete drapo a sparse nan dosye a kote li ekri done yo resevwa, sistèm nan pa eseye rezève 16GB nan yon fwa epi yon erè pa pral rive lè w ap eseye ekri nan yon dosye pi lwen pase 4GB.

Apre repete pwosedi a kat fwa, mwen te resevwa kat fichye sou PC mwen an ki gen diferan pati nan menm torrent la. Koulye a, tout sa ki rete se mete yo ansanm. Pwosedi a se esansyèlman senp. Ou bezwen ranplase zewo byte yo ak yon lòt valè si li egziste nan yon pozisyon yo bay nan youn nan kat dosye yo.

Li te sanble m 'ke tankou yon pwogram senp ta dwe sou entènèt la. Èske pèsonn pa janm rankontre yon pwoblèm konsa? Men, mwen reyalize ke mwen pa menm konnen ki mo kle pou fè rechèch pou li. Se poutèt sa, mwen byen vit kreye yon script Lua pou travay sa a e kounye a, mwen te optimize li. Sa a se sa mwen vle pataje.

Telechaje torrent la an pati

  1. kòmanse telechaje torrent la sou premye aparèy la
  2. tann jiskaske ROM a plen
  3. pran yon poz download la
  4. transfere fichye a nan dezyèm aparèy la epi ajoute yon nimewo nan non fichye a
  5. nou retounen nan premye pwen jiskaske dosye a telechaje nèt

Fusion pati nan yon sèl dosye

Apre yo fin resevwa dènye pati a, li nesesè kolekte yo nan yon sèl dosye antye.

Travay la se senp:

  1. Li tout pati nan yon fwa
  2. Si nan kèk pati pozisyon an se pa yon byte zewo, Lè sa a, nou ekri li nan pwodiksyon an, otreman nou ekri zewo

Fonksyon merge_part aksepte yon seri fil streams_in nan ki li yon pòsyon nan gwosè buffer_length epi retounen rezilta fusion pati ki soti nan fil diferan.

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
--[[

Fonksyon string.gsub se apwopriye pou travay la paske li pral jwenn moso plen ak zewo epi delivre sa yo bay li.

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

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

string.gsub pa transmèt pozisyon kote match la te jwenn. Se poutèt sa, nou fè yon rechèch paralèl pou pozisyon an zero_string lè l sèvi avèk fonksyon an string.find. Li ase pou jwenn premye byte zewo a.

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

--[[

Koulye a, si nan in_part gen done pou out_part kopye yo.

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

Koupe nan in_part pati ki koresponn ak sekans zewo yo.

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

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

В part gen done.

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

part yo te vin pi piti pase yon sekans zewo. Ann konplete li ak yo.

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

Konklizyon

Kidonk, nou te kapab telechaje ak rasanble fichye sa a sou yon PC. Apre fizyon an, mwen te retire fichye torrent la nan tablèt la. Mwen enstale yon kliyan torrent sou PC mwen epi tcheke dosye a avèk li.

Dènye pati ki telechaje sou tablèt la ka kite sou distribisyon an, men ou bezwen pèmèt re-tcheke pati yo anvan sa a epi dezaktive fichye a pou li pa telechaje ankò.

Itilize:

  1. Flud torrent kliyan sou yon tablèt.
  2. Torrent kliyan qBittorent sou PC.
  3. Lua script

Sous: www.habr.com

Add nouvo kòmantè