Распечатка n-го байта и последнего байта файла - PullRequest
0 голосов
/ 10 марта 2012

Я хочу распечатать как 7-й (или любой другой) байт, так и последний байт конкретного файла.Я хочу сделать это через командную строку, используя команду ruby.(Я использую Mac OS X, но это не должно иметь значения.)

Как мне это сделать?

Ответы [ 2 ]

1 голос
/ 10 марта 2012

Это печатает целочисленное значение каждого байта, что немного более понятно, чем ваш запрос на печать в базе 64:

arr = []

f = File.new("/tmp/test.txt")
 # "This is a test sentence.\n"

f.seek(7)
 # => 0 

arr << f.readbyte
 # => [32]    (The space between 'is' and 'a'.)

f.seek(-1, IO::SEEK_END)
 # => 0 

arr << f.readbyte
 # => [32, 10]    (The newline at the end of the file.)
1 голос
/ 10 марта 2012

Вот код кодировки base64:

require 'Base64'
file = File.open("temp.txt", "r")
byte_array = []
file.seek(6) # go to 7th byte
byte_array << file.getbyte
file.seek(file.size - 1)
byte_array << file.getbyte
Base64.encode64(byte_array.pack('c*'))

РЕДАКТИРОВАТЬ Если вы не хотите явно кодировать base64, вы также можете напечатать значения байтов, например:

puts byte_array * " "
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...