Как запустить скрипт ruby ​​для распаковки файла? - PullRequest
0 голосов
/ 30 октября 2019

Мне нужна помощь с кодом рубина. Я нашел итальянский словарь, сжатый с помощью сценария ruby. Поскольку у меня нет опыта работы с Ruby, я пытаюсь использовать предоставленный скрипт для распаковки найденного здесь файла: https://github.com/mircomacrelli/italian-dictionary.

Я уже пытался скачать словарь отсюда: https://github.com/mircomacrelli/italian-dictionary

и я загрузил файл словаря (italian.dic.fc), чтобы запустить скрипт (названный dictionary-expand.rb) с помощью онлайн-компилятора: https://repl.it/languages/ruby. Используемый мной скрипт rubyниже.

  require 'zlib'
abort 'No input file specified' if ARGV.empty?

Zlib::GzipReader.open(ARGV.first) do |gz|
  File.open(File.basename(ARGV.first, 'italian.dic.fc'), 'w') do |out|
    last = ''
   until gz.eof
      counter = gz.getc.ord
      delta = gz.gets.strip
      last = last[0, counter] + delta
      out.puts last
    end
  end
end

Я хочу открыть словарь. Не уверен, что то, что я пытаюсь сделать, это то, что я должен делать.

1 Ответ

1 голос
/ 30 октября 2019

Если вы скачали весь репозиторий, который вы упомянули, достаточно запустить его в его каталоге:

ruby dictionary-expand.rb italian.dic.fc

Никаких изменений в сценарии не требуется.

Если вы хотите запустить его вэтот REPL, хотя, сценарий будет выглядеть так:

require 'zlib'
file = 'italian.dic.fc'
Zlib::GzipReader.open(file) do |gz|
  File.open(File.basename(file, '.fc'), 'w') do |out|
    last = ''
    until gz.eof
      counter = gz.getc.ord
      delta = gz.gets.strip
      last = last[0, counter] + delta
      out.puts last
    end
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...