16GB ಉಚಿತ ಸ್ಥಳಾವಕಾಶದೊಂದಿಗೆ ಟ್ಯಾಬ್ಲೆಟ್ ಮೂಲಕ 4GB ಟೊರೆಂಟ್ ಅನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ

16GB ಉಚಿತ ಸ್ಥಳಾವಕಾಶದೊಂದಿಗೆ ಟ್ಯಾಬ್ಲೆಟ್ ಮೂಲಕ 4GB ಟೊರೆಂಟ್ ಅನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ

ಕಾರ್ಯ:

ಇಂಟರ್ನೆಟ್ ಇಲ್ಲದೆ ಪಿಸಿ ಇದೆ, ಆದರೆ ಯುಎಸ್ಬಿ ಮೂಲಕ ಫೈಲ್ ಅನ್ನು ವರ್ಗಾಯಿಸಲು ಸಾಧ್ಯವಿದೆ. ಈ ಫೈಲ್ ಅನ್ನು ವರ್ಗಾಯಿಸಬಹುದಾದ ಇಂಟರ್ನೆಟ್ನೊಂದಿಗೆ ಟ್ಯಾಬ್ಲೆಟ್ ಇದೆ. ನಿಮ್ಮ ಟ್ಯಾಬ್ಲೆಟ್‌ನಲ್ಲಿ ಅಗತ್ಯವಿರುವ ಟೊರೆಂಟ್ ಅನ್ನು ನೀವು ಡೌನ್‌ಲೋಡ್ ಮಾಡಬಹುದು, ಆದರೆ ಸಾಕಷ್ಟು ಉಚಿತ ಸ್ಥಳವಿಲ್ಲ. ಟೊರೆಂಟ್‌ನಲ್ಲಿರುವ ಫೈಲ್ ಒಂದು ಮತ್ತು ದೊಡ್ಡದಾಗಿದೆ.

ಪರಿಹಾರದ ಹಾದಿ:

ನಾನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಲು ಟೊರೆಂಟ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸಿದೆ. ಖಾಲಿ ಸ್ಥಳವು ಬಹುತೇಕ ಹೋದಾಗ, ನಾನು ಡೌನ್‌ಲೋಡ್ ಅನ್ನು ವಿರಾಮಗೊಳಿಸಿದೆ. ನಾನು ಟ್ಯಾಬ್ಲೆಟ್ ಅನ್ನು PC ಗೆ ಸಂಪರ್ಕಿಸಿದೆ ಮತ್ತು ಟ್ಯಾಬ್ಲೆಟ್ನಿಂದ PC ಗೆ ಫೈಲ್ ಅನ್ನು ಸರಿಸಿದೆ. ನಾನು ವಿರಾಮಗೊಳಿಸಿದ್ದೇನೆ ಮತ್ತು ನನ್ನ ಆಶ್ಚರ್ಯಕ್ಕೆ ಫೈಲ್ ಅನ್ನು ಮತ್ತೆ ರಚಿಸಲಾಗಿದೆ ಮತ್ತು ಟೊರೆಂಟ್ ಏನೂ ಸಂಭವಿಸಿಲ್ಲ ಎಂಬಂತೆ ಡೌನ್‌ಲೋಡ್ ಮಾಡುವುದನ್ನು ಮುಂದುವರೆಸಿದೆ.

ಟೊರೆಂಟ್ ಕ್ಲೈಂಟ್ ಸ್ವೀಕರಿಸಿದ ಡೇಟಾವನ್ನು ಬರೆಯುವ ಫೈಲ್‌ಗೆ ವಿರಳವಾದ ಫ್ಲ್ಯಾಗ್ ಅನ್ನು ಹೊಂದಿಸುತ್ತದೆ ಎಂಬ ಕಾರಣದಿಂದಾಗಿ, ಸಿಸ್ಟಮ್ ಒಮ್ಮೆಗೆ 16GB ಅನ್ನು ಕಾಯ್ದಿರಿಸಲು ಪ್ರಯತ್ನಿಸುವುದಿಲ್ಲ ಮತ್ತು 4GB ಗಿಂತ ಹೆಚ್ಚಿನ ಫೈಲ್‌ಗೆ ಬರೆಯಲು ಪ್ರಯತ್ನಿಸುವಾಗ ದೋಷ ಸಂಭವಿಸುವುದಿಲ್ಲ.

ಕಾರ್ಯವಿಧಾನವನ್ನು ನಾಲ್ಕು ಬಾರಿ ಪುನರಾವರ್ತಿಸಿದ ನಂತರ, ನನ್ನ PC ಯಲ್ಲಿ ಒಂದೇ ಟೊರೆಂಟ್‌ನ ವಿವಿಧ ಭಾಗಗಳನ್ನು ಹೊಂದಿರುವ ನಾಲ್ಕು ಫೈಲ್‌ಗಳನ್ನು ನಾನು ಸ್ವೀಕರಿಸಿದ್ದೇನೆ. ಈಗ ಉಳಿದಿರುವುದು ಅವುಗಳನ್ನು ಒಟ್ಟಿಗೆ ಸೇರಿಸುವುದು. ಕಾರ್ಯವಿಧಾನವು ಮೂಲಭೂತವಾಗಿ ಸರಳವಾಗಿದೆ. ನಾಲ್ಕು ಫೈಲ್‌ಗಳಲ್ಲಿ ಒಂದು ನಿರ್ದಿಷ್ಟ ಸ್ಥಾನದಲ್ಲಿ ಅಸ್ತಿತ್ವದಲ್ಲಿದ್ದರೆ ನೀವು ಶೂನ್ಯ ಬೈಟ್‌ಗಳನ್ನು ಮತ್ತೊಂದು ಮೌಲ್ಯದೊಂದಿಗೆ ಬದಲಾಯಿಸಬೇಕಾಗುತ್ತದೆ.

ಅಂತಹ ಸರಳ ಪ್ರೋಗ್ರಾಂ ಇಂಟರ್ನೆಟ್ನಲ್ಲಿ ಇರಬೇಕು ಎಂದು ನನಗೆ ತೋರುತ್ತದೆ. ಅಂತಹ ಸಮಸ್ಯೆಯನ್ನು ಯಾರೂ ಎದುರಿಸಿಲ್ಲವೇ? ಆದರೆ ಯಾವ ಕೀವರ್ಡ್‌ಗಳನ್ನು ಹುಡುಕಬೇಕು ಎಂದು ನನಗೆ ತಿಳಿದಿಲ್ಲ ಎಂದು ನಾನು ಅರಿತುಕೊಂಡೆ. ಆದ್ದರಿಂದ, ನಾನು ಈ ಕಾರ್ಯಕ್ಕಾಗಿ ಲುವಾ ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ತ್ವರಿತವಾಗಿ ರಚಿಸಿದ್ದೇನೆ ಮತ್ತು ಈಗ ನಾನು ಅದನ್ನು ಆಪ್ಟಿಮೈಸ್ ಮಾಡಿದ್ದೇನೆ. ಇದನ್ನೇ ನಾನು ಹಂಚಿಕೊಳ್ಳಲು ಬಯಸುತ್ತೇನೆ.

ಟೊರೆಂಟ್ ಅನ್ನು ಭಾಗಗಳಲ್ಲಿ ಡೌನ್‌ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ

  1. ಮೊದಲ ಸಾಧನದಲ್ಲಿ ಟೊರೆಂಟ್ ಡೌನ್‌ಲೋಡ್ ಮಾಡಲು ಪ್ರಾರಂಭಿಸಿ
  2. ರಾಮ್ ತುಂಬುವವರೆಗೆ ಕಾಯಿರಿ
  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

ತೀರ್ಮಾನಕ್ಕೆ

ಹೀಗಾಗಿ, ನಾವು ಈ ಫೈಲ್ ಅನ್ನು PC ಯಲ್ಲಿ ಡೌನ್‌ಲೋಡ್ ಮಾಡಲು ಮತ್ತು ಜೋಡಿಸಲು ಸಾಧ್ಯವಾಯಿತು. ವಿಲೀನದ ನಂತರ, ನಾನು ಟ್ಯಾಬ್ಲೆಟ್‌ನಿಂದ ಟೊರೆಂಟ್ ಫೈಲ್ ಅನ್ನು ಹೊರತೆಗೆದಿದ್ದೇನೆ. ನಾನು ನನ್ನ PC ಯಲ್ಲಿ ಟೊರೆಂಟ್ ಕ್ಲೈಂಟ್ ಅನ್ನು ಸ್ಥಾಪಿಸಿದ್ದೇನೆ ಮತ್ತು ಅದರೊಂದಿಗೆ ಫೈಲ್ ಅನ್ನು ಪರಿಶೀಲಿಸಿದ್ದೇನೆ.

ಟ್ಯಾಬ್ಲೆಟ್‌ನಲ್ಲಿ ಕೊನೆಯದಾಗಿ ಡೌನ್‌ಲೋಡ್ ಮಾಡಿದ ಭಾಗವನ್ನು ವಿತರಣೆಯಲ್ಲಿ ಬಿಡಬಹುದು, ಆದರೆ ನೀವು ಈ ಮೊದಲು ಭಾಗಗಳ ಮರು-ಪರಿಶೀಲನೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಬೇಕು ಮತ್ತು ಫೈಲ್ ಅನ್ನು ಅನ್‌ಚೆಕ್ ಮಾಡುವುದರಿಂದ ಅದು ಮತ್ತೆ ಡೌನ್‌ಲೋಡ್ ಆಗುವುದಿಲ್ಲ.

ಬಳಸಲಾಗಿದೆ:

  1. ಟ್ಯಾಬ್ಲೆಟ್‌ನಲ್ಲಿ ಫ್ಲಡ್ ಟೊರೆಂಟ್ ಕ್ಲೈಂಟ್.
  2. PC ಯಲ್ಲಿ ಟೊರೆಂಟ್ ಕ್ಲೈಂಟ್ qBittorent.
  3. ಲುವಾ ಲಿಪಿ

ಮೂಲ: www.habr.com

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ