Daxistina torrentek 16 GB bi tabletek bi 4 GB cîhê belaş dakêşin

Daxistina torrentek 16 GB bi tabletek bi 4 GB cîhê belaş dakêşin

Karekî:

Komputerek bêyî Înternetê heye, lê gengaz e ku pelê bi USB-ê veguhezîne. Bi Înternetê tabletek heye ku ev pel dikare jê were veguheztin. Hûn dikarin torrenta pêwîst li ser tableta xwe dakêşin, lê cîhê belaş têra xwe tune. Pelê di torrentê de yek û mezin e.

Rêya çareseriyê:

Min ji bo dakêşandinê dest bi torrentê kir. Dema ku cîhê belaş hema hema çû, min dakêşandinê rawestand. Min tablet bi PC-ê ve girêda û pelê ji tabletê bar kir PC-yê. Ez sekinîm û bi sosretiya min pel dîsa hate çêkirin û torrent wekî ku tiştek nebûbe dakêşana berdewam kir.

Ji ber vê yekê ku xerîdar torrent ala tîrêjê li pelê ku tê de daneyên wergirtî dinivîse destnîşan dike, pergal hewil nade ku yekcar 16 GB veqetîne û dema ku hewl dide ku li pelek ji 4 GB wêdetir binivîsîne dê xeletiyek çê nebe.

Piştî ku prosedurê çar caran dubare kir, min çar pelên li ser PC-ya xwe wergirtin ku beşên cûda yên heman torrentê hene. Niha ya ku dimîne ew e ku ew li hev bikin. Pêvajo bi bingehîn hêsan e. Ger ew di yek ji çar pelan de li cîhek diyarkirî hebe, hûn hewce ne ku baytên sifir bi nirxek din veguherînin.

Ji min re xuya bû ku bernameyek wusa hêsan divê li ser Înternetê be. Ma tu kes rastî pirsgirêkek wusa nehatiye? Lê min fêhm kir ku ez jî nizanim li kîjan keywordan bigerim. Ji ber vê yekê, min zû ji bo vî karî skrîptek Lua afirand û naha min ew xweşbîn kir. Ya ku ez dixwazim parve bikim ev e.

Daxistina torrentê li parçeyan

  1. dest bi daxistina torrentê li ser cîhaza yekem bikin
  2. li bendê bin ku ROM tije bibe
  3. daxistinê rawestînin
  4. pelê veguhezînin cîhaza duyemîn û jimareyek li navê pelê zêde bikin
  5. em vedigerin xala yekem heta ku pel bi tevahî were dakêşandin

Yekkirina parçeyan di yek pelê de

Piştî ku beşa paşîn hat wergirtin, pêdivî ye ku ew di yek pelê de werin berhev kirin.

Karê hêsan e:

  1. Xwendina hemû beşan bi carekê
  2. Ger di hin beşan de pozîsyon ne baytek sifir be, wê demê em wê li dergehê dinivîsin, wekî din em sifir dinivîsin.

function merge_part rêzek têlan qebûl dike streams_in ya ku beşek ji mezinbûnê dixwîne buffer_length û encama yekbûna beşan ji mijarên cihêreng vedigerîne.

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

function string.gsub ji bo peywirê guncan e ji ber ku ew ê perçeyên bi sifir dagirtî bibîne û tiştê ku jê re tê dayîn bide.

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

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

string.gsub helwesta ku maç tê de hatiye dîtin nade. Ji ber vê yekê, em ji bo pozîsyonê lêgerînek paralel dikin zero_string fonksiyonê bikar tîne string.find. Ji bo dîtina baytê sifirê ewil bes e.

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

--[[

Niha eger di in_part daneyên ji bo hene out_part wan kopî bikin.

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

Ji birrîn in_part beşa ku bi rêza sifiran re têkildar e.

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

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

В part dane hene.

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

part derket holê ku ji rêzek sifiran kêmtir e. Werin em bi wan re temam bikin.

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

encamê

Bi vî rengî, me karî vê pelê li ser PC-ê dakêşin û berhev bikin. Piştî hevgirtinê, min pelê torrentê ji tabletê derxist. Min xerîdarek torrent li ser PC-ya xwe saz kir û pelê pê re kontrol kir.

Parçeya dakêşandî ya paşîn a li ser tabletê dikare li ser belavkirinê were hiştin, lê hûn hewce ne ku berî vê yekê ji nû ve kontrolkirina beşan çalak bikin û pelê jê hilînin da ku ew careke din neyê dakêşandin.

Bikaranîn:

  1. Muwekîlê torrentê Flud li ser tabletê.
  2. Muwekîlê Torrent qBittorent li ser PC-ê.
  3. Nivîsara Lua

Source: www.habr.com

Add a comment