16GB torrent ڊائون لوڊ ڪندي ٽيبليٽ ذريعي 4GB مفت جاءِ سان

16GB torrent ڊائون لوڊ ڪندي ٽيبليٽ ذريعي 4GB مفت جاءِ سان

ٽاسڪ

انٽرنيٽ کان سواء هڪ پي سي آهي، پر اهو ممڪن آهي ته فائل کي USB ذريعي منتقل ڪرڻ. انٽرنيٽ سان گڏ هڪ ٽيبليٽ آهي جنهن مان هن فائل کي منتقل ڪري سگهجي ٿو. توھان پنھنجي ٽيبليٽ تي گھربل torrent ڊائون لوڊ ڪري سگھو ٿا، پر اتي ڪافي خالي جاءِ ناھي. torrent ۾ فائل هڪ ۽ وڏي آهي.

حل جو رستو:

مون ڊائون لوڊ ڪرڻ لاءِ ٽورينٽ شروع ڪيو. جڏهن خالي جاءِ لڳ ڀڳ ختم ٿي وئي، مون ڊائون لوڊ کي روڪيو. مون ٽيبليٽ کي پي سي سان ڳنڍيو ۽ فائيل کي ٽيبليٽ کان پي سي تي منتقل ڪيو. مون کي روڪيو ۽ منهنجي تعجب ۾ اها فائل ٻيهر ٺاهي وئي ۽ ٽورينٽ ڊائون لوڊ ٿيڻ لڳو ڄڻ ته ڪجهه ٿيو ئي ناهي.

انهي حقيقت جي ڪري ته torrent ڪلائنٽ اسپارس پرچم کي فائل تي سيٽ ڪري ٿو جنهن ۾ اهو وصول ڪيل ڊيٽا لکي ٿو، سسٽم هڪ ڀيرو 16GB محفوظ ڪرڻ جي ڪوشش نه ڪندو آهي ۽ 4GB کان وڌيڪ فائل تي لکڻ جي ڪوشش ڪندي غلطي نه ٿيندي.

عمل کي چار ڀيرا ورجائڻ کان پوءِ، مون پنهنجي پي سي تي چار فائلون وصول ڪيون جن ۾ هڪ ئي ٽورينٽ جا مختلف حصا شامل هئا. هاڻي باقي رهي ٿو انهن کي گڏ ڪرڻ. عمل بنيادي طور سادو آهي. توهان کي صفر بائيٽ کي ٻي قيمت سان تبديل ڪرڻ جي ضرورت آهي جيڪڏهن اهو چار فائلن مان هڪ ۾ ڏنل پوزيشن تي موجود آهي.

اهو مون کي لڳي ٿو ته اهڙي هڪ سادي پروگرام انٽرنيٽ تي هجڻ گهرجي. ڇا ڪنهن کي به اهڙو مسئلو نه ٿيو آهي؟ پر مون محسوس ڪيو ته مون کي اها به خبر ناهي ته ان لاءِ ڪهڙا لفظ ڳولڻا آهن. تنهن ڪري، مون جلدي هڪ لوا اسڪرپٽ ٺاهي هن ڪم لاءِ ۽ هاڻي مون ان کي بهتر ڪيو آهي. هي اهو آهي جيڪو مان حصيداري ڪرڻ چاهيان ٿو.

حصن ۾ torrent ڊائون لوڊ

  1. پهرين ڊوائيس تي torrent ڊائون لوڊ ڪرڻ شروع ڪريو
  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. PC تي Torrent ڪلائنٽ qBittorent.
  3. لوا اسڪرپٽ

جو ذريعو: www.habr.com

تبصرو شامل ڪريو