د 16GB وړیا ځای سره د ټابلیټ له لارې د 4GB تورینټ ډاونلوډ کول

د 16GB وړیا ځای سره د ټابلیټ له لارې د 4GB تورینټ ډاونلوډ کول

دنده:

د انټرنیټ پرته کمپیوټر شتون لري، مګر دا ممکنه ده چې فایل د USB له لارې لیږدول شي. د انټرنیټ سره یو ټابلیټ شتون لري چې له هغې څخه دا فایل لیږدول کیدی شي. تاسو کولی شئ په خپل ټابلیټ کې اړین تورینټ ډاونلوډ کړئ ، مګر کافي وړیا ځای شتون نلري. په تورینټ کې فایل یو او لوی دی.

د حل لاره:

ما د ډاونلوډ کولو لپاره تورینټ پیل کړ. کله چې وړیا ځای تقریبا ورک شو، ما ډاونلوډ ودراوه. ما ټابلیټ له کمپیوټر سره وصل کړ او فایل مې له ټابلیټ څخه کمپیوټر ته واستاوه. ما ودراوه او زما د حیرانتیا لپاره فایل بیا رامینځته شو او تورینټ ډاونلوډ ته دوام ورکړ لکه څنګه چې هیڅ پیښ شوي ندي.

د دې حقیقت له امله چې د تورینټ پیرودونکي فایل ته سپارس بیرغ ټاکي په کوم کې چې دا ترلاسه شوي ډاټا لیکي ، سیسټم هڅه نه کوي په یوځل کې د 16GB ذخیره کړي او د 4GB څخه هاخوا فایل ته د لیکلو هڅه کولو پرمهال به کومه تېروتنه ونه شي.

د کړنلارې څلور ځله تکرارولو وروسته، ما په خپل کمپیوټر کې څلور فایلونه ترلاسه کړل چې د ورته مشعل مختلف برخې لري. اوس ټول هغه څه چې پاتې دي د دوی یوځای کول دي. کړنلاره په اصل کې ساده ده. تاسو اړتیا لرئ د صفر بایټس د بل ارزښت سره ځای په ځای کړئ که چیرې دا په څلورو فایلونو کې په یوه ورکړل شوي موقعیت کې شتون ولري.

داسې ښکاري چې داسې یو ساده پروګرام باید په انټرنیټ کې وي. ایا هیڅوک هیڅکله له داسې ستونزې سره مخ شوي ندي؟ مګر ما پوهیده چې زه حتی نه پوهیږم چې د دې لپاره کوم کلیدي کلمې وپلټئ. له همدې امله، ما په چټکۍ سره د دې کار لپاره لوا سکریپټ جوړ کړ او اوس ما دا غوره کړی دی. دا هغه څه دي چې زه یې شریکول غواړم.

په برخو کې د تورینټ ډاونلوډ کول

  1. په لومړي وسیله کې د تورینټ ډاونلوډ پیل کړئ
  2. انتظار وکړئ تر هغه چې ROM ډک شي
  3. کښته کول بند کړئ
  4. فایل دوهم وسیله ته انتقال کړئ او د فایل نوم ته شمیره اضافه کړئ
  5. موږ بیرته لومړي ټکي ته راځو تر هغه چې فایل په بشپړ ډول ډاونلوډ شوی نه وي

برخې په یوه فایل کې یوځای کول

وروسته له دې چې وروستۍ برخه ترلاسه شوه، دا اړینه ده چې دوی په یوه ټول فایل کې راټول کړئ.

دنده ساده ده:

  1. په یو وخت کې ټولې برخې لوستل
  2. که په کومه برخه کې موقعیت صفر بایټ نه وي، نو موږ دا په محصول کې لیکو، که نه نو موږ صفر لیکو.

دنده merge_part د تارونو لړۍ مني streams_in چې د اندازې یوه برخه لوستل کیږي buffer_length او د مختلفو تارونو څخه د برخو یوځای کولو پایله بیرته راګرځوي.

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

دنده string.gsub د کار لپاره مناسب دی ځکه چې دا به د صفر څخه ډکې ټوټې ومومي او هغه څه وړاندې کړي چې ورته ورکړل شوي.

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

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

string.gsub هغه موقعیت نه بیانوي چې په کوم ځای کې لوبه وموندل شوه. له همدې امله، موږ د موقف لپاره موازي لټون کوو zero_string د فنکشن په کارولو سره string.find. دا د لومړي صفر بایټ موندلو لپاره کافی دی.

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

--[[

اوس که دننه in_part لپاره معلومات شتون لري out_part کاپي يې کړئ.

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

څخه پرې کول in_part برخه د صفرونو د ترتیب سره مطابقت لري.

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

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

В part معلومات شتون لري.

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

part د صفرونو له ترتیب څخه لږ و. راځئ چې دا د دوی سره ضمیمه کړو.

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

پایلې

پدې توګه ، موږ وکولی شو دا فایل په کمپیوټر کې ډاونلوډ او راټول کړو. د ادغام وروسته ، ما د ټابلیټ څخه د تورینټ فایل را ایستل. ما په خپل کمپیوټر کې د مشعل پیرودونکی نصب کړ او فایل یې ورسره چیک کړ.

په ټابلیټ کې وروستی ډاونلوډ شوی برخه په توزیع کې پاتې کیدی شي ، مګر تاسو اړتیا لرئ مخکې له دې د برخو بیا چیک کول فعال کړئ او فایل غیر چیک کړئ ترڅو دا بیا ډاونلوډ نشي.

کارول شوي:

  1. په ټابلیټ کې د فلډ مشعل پیرودونکي.
  2. په کمپیوټر کې د تورینټ پیرودونکي qBittorent.
  3. لوا سکریپټ

سرچینه: www.habr.com

Add a comment