16ஜிபி இலவச இடத்துடன் டேப்லெட் வழியாக 4ஜிபி டொரண்டைப் பதிவிறக்குகிறது

16ஜிபி இலவச இடத்துடன் டேப்லெட் வழியாக 4ஜிபி டொரண்டைப் பதிவிறக்குகிறது

பணி:

இணையம் இல்லாமல் ஒரு பிசி உள்ளது, ஆனால் யூ.எஸ்.பி வழியாக கோப்பை மாற்ற முடியும். இந்த கோப்பை மாற்றக்கூடிய இணையத்துடன் ஒரு டேப்லெட் உள்ளது. உங்கள் டேப்லெட்டில் தேவையான டொரண்டைப் பதிவிறக்கலாம், ஆனால் போதுமான இடவசதி இல்லை. டோரண்டில் உள்ள கோப்பு ஒன்று மற்றும் பெரியது.

தீர்வுக்கான பாதை:

டவுன்லோட் செய்ய டோரண்டை ஆரம்பித்தேன். காலி இடம் கிட்டத்தட்ட இல்லாமல் போனதும், பதிவிறக்கத்தை இடைநிறுத்தினேன். நான் டேப்லெட்டை பிசியுடன் இணைத்து, கோப்பை டேப்லெட்டிலிருந்து பிசிக்கு நகர்த்தினேன். நான் இடைநிறுத்தினேன், எனக்கு ஆச்சரியமாக கோப்பு மீண்டும் உருவாக்கப்பட்டு, எதுவும் நடக்காதது போல் டொரண்ட் தொடர்ந்து பதிவிறக்கம் செய்யப்பட்டது.

டொரண்ட் கிளையன்ட் பெறப்பட்ட தரவை எழுதும் கோப்பில் ஸ்பேர்ஸ் கொடியை அமைக்கிறது என்பதன் காரணமாக, கணினி ஒரே நேரத்தில் 16 ஜிபியை முன்பதிவு செய்ய முயற்சிக்காது மற்றும் 4 ஜிபிக்கு அப்பால் ஒரு கோப்பில் எழுத முயற்சிக்கும்போது பிழை ஏற்படாது.

செயல்முறையை நான்கு முறை மீண்டும் செய்த பிறகு, எனது கணினியில் ஒரே டொரண்டின் வெவ்வேறு பகுதிகளைக் கொண்ட நான்கு கோப்புகளைப் பெற்றேன். இப்போது எஞ்சியிருப்பது அவற்றை ஒன்றாக இணைப்பதுதான். செயல்முறை அடிப்படையில் எளிமையானது. நான்கு கோப்புகளில் ஒன்றில் கொடுக்கப்பட்ட நிலையில் இருந்தால், பூஜ்ஜிய பைட்டுகளை மற்றொரு மதிப்புடன் மாற்ற வேண்டும்.

இப்படி ஒரு எளிய நிரல் இணையத்தில் இருக்க வேண்டும் என்று எனக்குத் தோன்றியது. இதுபோன்ற பிரச்சனையை யாரும் சந்தித்ததில்லையா? ஆனால் என்ன முக்கிய வார்த்தைகளைத் தேடுவது என்பது கூட எனக்குத் தெரியாது என்பதை உணர்ந்தேன். எனவே, இந்த பணிக்காக நான் விரைவாக ஒரு லுவா ஸ்கிரிப்டை உருவாக்கினேன், இப்போது அதை மேம்படுத்தியுள்ளேன். இதைத்தான் நான் பகிர்ந்து கொள்ள விரும்புகிறேன்.

பகுதிகளாக டொரண்டைப் பதிவிறக்குகிறது

  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

கருத்தைச் சேர்