2011-09-20 2 views
1

У меня есть много текстовых документов, которые заполняются таблицами sudo, как показано ниже. Каким будет лучший способ разобрать таблицу в нечто вроде хэша или массива?Разбор текстового файла

Я пишу собственный алгоритм или существуют ли там существующие библиотеки?

PLACE NO. NAME     DIV RANK SWIM TRANS RANK BIKE MPH TRANS RANK RUN PACE TIME  
===== ===== ======================= === ==== ==== ===== ==== ======= ===== ===== ==== ====== ===== ======= 
    1  1 Krige Schabort   PCHAL 3 22:40 1:08 25 1:14:15 20.2 2:25 1 26:24 4:24 2:06:49     
    2 12 Kevin Moats    M5559 11 24:41 0:46 1 1:06:01 22.7 0:44 9 42:50 7:09 2:15:00     
+0

Кажется фиксированной ширина плоских файлов для меня. Этот материал существует с тех пор, как были построены компьютеры. См. Здесь рекомендации: http://stackoverflow.com/questions/1609807/whats-the-best-way-of-parsing-a-fixed-width-formatted-file-in-java – Candide

+0

Есть ли причина, по которой вы добавили тег 'ruby' на ваш вопрос? Если вы хотите получить рубиновый ответ, вы должны указать это в вопросе. У меня были хорошие результаты с рубином на окнах, потому что другие варианты означали, что мне пришлось установить что-то вроде Cygwin, и рубин был на месте. – mliebelt

ответ

1

если формат длины фиксированной и заполнены с пространством внутри, что о String#unpack

вы можете увидеть http://ruby-doc.org/core/classes/String.html#M001112 для деталей

+0

Мне нравится идея распаковки, но я не смог найти формат распаковки, который работает. – jspooner

+0

@jspooner на самом деле страница perlpacktut perl дает пример извлечения полей фиксированной ширины из строки, и я не использовал пакет ruby. они, похоже, очень похожи, но .. http://perldoc.perl.org/perlpacktut.html#Packing-Text – Jokester

Смежные вопросы