2011-09-20 6 views
1

J'ai beaucoup de documents texte qui sont remplis de tables sudo comme l'exemple ci-dessous. Quelle serait la meilleure façon d'analyser la table en quelque chose comme un hachage ou un tableau? Est-ce que j'écris un algorithme personnalisé ou existe-t-il des bibliothèques existantes?Analyse de fichier texte

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

On dirait fixe largeur des fichiers plats pour moi. Ce truc a été autour depuis que les ordinateurs ont été construits. Voir ici pour les recommandations: http://stackoverflow.com/questions/1609807/whats-the-best-way-of-parsing-a-fixed-width-formatted-file-in-java – Candide

+0

Y at-il une raison pour laquelle vous avez ajouté l'étiquette 'ruby' à votre question? Si vous voulez avoir une réponse de rubis, vous devriez le préciser dans la question. J'ai eu de bons résultats avec ruby ​​sur Windows, parce que les autres options signifiait que je devais installer quelque chose comme Cygwin, et ruby ​​était en place. – mliebelt

Répondre

1

si le format est de longueur fixe et rempli d'espace dans, qu'en String#unpack

vous pouvez voir http://ruby-doc.org/core/classes/String.html#M001112 pour plus de détails

+0

J'aime l'idée de déballer mais je n'ai pas réussi à trouver un format de déballage qui fonctionne. – jspooner

+0

@jspooner En fait, la page 'perlpacktut' de perl donne un exemple d'extraction de champs à largeur fixe en chaîne, et je n'ai pas beaucoup utilisé le pack de ruby. ils semblent être tout à fait semblables si .. http://perldoc.perl.org/perlpacktut.html#Packing-Text – Jokester