2010-12-10 9 views
0

Je suis en train d'analyser l'historique des mains de Pokerstars.Erreur lors de l'analyse du fichier texte, mais pas après l'avoir ouvert/enregistré dans Textmate

Je reçois l'erreur suivante lorsque je tente d'analyser les mains directement à partir du fichier Pokerstars:

Called id for nil, which would mistakenly be 4 -- if you really wanted the id of nil, use object_id 

Ce qui est vraiment étrange est que je suis tout à fait réussie analyse le même contenu avec des centaines de mains si j'ai copié/collé le texte du fichier texte pokerstars dans Textmate et avoir enregistré le fichier Textmate .txt. Je pense qu'il pourrait s'agir des sauts de ligne ou de l'encodage utf-8 par défaut de Textmate mais je n'ai pas assez de compréhension de ces problèmes pour résoudre le problème.

EDIT

J'ai maintenant déterminé que le fichier est Pokerstars UTF-8 codé. Mon prochain suspect est le problème de fin de ligne.

Une idée sur la façon de vérifier les caractères EOL est utilisée dans le fichier? et en changeant ceux-ci à un nouveau?

D'autres idées? Quelque chose que je pourrais manquer?

Répondre

4

Je soupçonne que la cause du problème est BOM, jetez un oeil par exemple ici:

http://naturalcode.wordpress.com/2008/08/30/ruby-19-and-unicode-the-bom-will-fuck-your-shit-up/

How to avoid tripping over UTF-8 BOM when reading files

et google plus si cette réponse particulière ne permet pas.

+0

Wow. Je n'avais aucune idée de cela. Merci beaucoup Mladen. Je vous ai donné un coup de pouce et une "bonne réponse". C'est le moins que je puisse faire. Pour toute personne intéressée, j'ai supprimé la nomenclature avec une expression régulière: line.gsub! ("\ XEF \ xBB \ xBF", '') – allesklar