Misintona torrent 16GB amin'ny alàlan'ny takelaka misy toerana malalaka 4GB

Misintona torrent 16GB amin'ny alàlan'ny takelaka misy toerana malalaka 4GB

Asa iray:

Misy PC tsy misy Internet, fa azo atao ny mamindra ny rakitra amin'ny alàlan'ny USB. Misy tablette miaraka amin'ny Internet izay ahafahana mamindra ity rakitra ity. Azonao atao ny misintona ny torrent ilaina amin'ny takelakao, saingy tsy ampy ny toerana malalaka. Ny rakitra ao amin'ny torrent dia iray ary lehibe.

Lalana mankany amin'ny vahaolana:

Nanomboka ny torrent aho mba hisintona. Rehefa saika lany ny toerana malalaka dia naato ny fampidinana. Nampifandray ny takelaka tamin'ny PC aho ary namindra ny rakitra avy amin'ny takelaka mankany amin'ny PC. Niato aho ary nahagaga ahy fa noforonina indray ilay rakitra ary nitohy ny fampidinana ny torrent toy ny tsy nisy na inona na inona.

Noho ny zava-misy fa ny mpanjifa torrent dia mametraka ny saina kely amin'ny rakitra izay hanoratany ny angon-drakitra voaray, ny rafitra dia tsy manandrana mitahiry 16GB indray mandeha ary tsy hisy hadisoana rehefa manandrana manoratra amin'ny rakitra mihoatra ny 4GB.

Rehefa avy namerina in-efatra ilay fomba dia nahazo rakitra efatra tao amin'ny PC-ko misy ampahany samihafa amin'ny torrent iray aho. Ny hany sisa tavela dia ny mampitambatra azy ireo. Tsotra ny fomba fiasa. Mila soloinao amin'ny sanda hafa ny zero bytes raha toa ka misy amin'ny toerana iray ao amin'ny iray amin'ireo rakitra efatra.

Toa ahy fa ny programa tsotra toy izany dia tokony ho ao amin'ny Internet. Tsy mbola nisy olona nahita olana toy izany ve? Saingy tsapako fa tsy fantatro akory izay teny fanalahidy hikaroka azy. Noho izany, namorona script Lua haingana aho ho an'ity asa ity ary efa nohatsaraiko izany. Ity no tiako hozaraina.

Misintona ny torrent amin'ny ampahany

  1. manomboka misintona ny torrent amin'ny fitaovana voalohany
  2. miandry mandra-pahafeno ny ROM
  3. atsaharo ny fampidinana
  4. mamindra ny rakitra mankany amin'ny fitaovana faharoa ary asio isa ny anaran'ny rakitra
  5. miverina amin'ny teboka voalohany isika mandra-pisintona tanteraka ny rakitra

Manambatra ampahany ho rakitra iray

Rehefa voaray ny ampahany farany dia ilaina ny manangona azy ireo ho rakitra iray manontolo.

Tsotra ny asa:

  1. Mamaky ny ampahany rehetra indray mandeha
  2. Raha amin'ny ampahany sasany ny toerana dia tsy aotra byte, dia soratanay amin'ny vokatra, raha tsy izany dia manoratra aotra

asa merge_part manaiky kofehy maromaro streams_in izay mamaky ampahany amin'ny habeny buffer_length ary mamerina ny vokatry ny fampifangaroana ampahany amin'ny kofehy samihafa.

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

asa string.gsub dia mety amin'ny asa satria hahita sombin-javatra feno aotra izy ary hanatitra izay omena azy.

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

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

string.gsub tsy mampita ny toerana nahitana ny lalao. Noho izany, manao fikarohana parallèle momba ny toerana zero_string mampiasa ny asa string.find. Ampy ny mahita ny aotra byte voalohany.

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

--[[

Raha izao no ao in_part misy data ho an'ny out_part kopia azy ireo.

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

Tapaho avy in_part ampahany mifanaraka amin'ny filaharan'ny aotra.

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

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

В part misy data.

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

part nivadika ho latsaky ny filaharan'ny aotra. Andeha isika hanampy azy ireo.

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

famaranana

Noho izany dia afaka nisintona sy nanangona ity rakitra ity tamin'ny PC izahay. Taorian'ny fampifangaroana dia nesoriko tamin'ny takelaka ilay rakitra torrent. Nametraka mpanjifa torrent tamin'ny PC-ko aho ary nanamarina ilay rakitra niaraka tamin'izany.

Ny ampahany farany alaina amin'ny tablette dia azo avela amin'ny fizarana, fa mila averinao jerena ny ampahany alohan'io ary esory ny rakitra mba tsy hisintona azy indray.

Ampiasaina:

  1. Flud torrent mpanjifa amin'ny takelaka.
  2. Mpanjifa Torrent qBittorent amin'ny PC.
  3. script Lua

Source: www.habr.com

Add a comment