8
votes

À l'analyse d'un fichier binaire en rubis

J'ai besoin de pouvoir analyser un fichier binaire avec Ruby. Ce fichier contient des morceaux de données trouvés via un en-tête comprenant le décalage de fichier et la longueur de chaque morceau.

Comment puis-je obtenir les données correctement? J'ai été incapable de rechercher dans le fichier dans le dossier basé sur les décalages que je lisais depuis qu'ils sortent dans des cordes que je ne sais pas comment convertir en un format IO # recherche comprend.

Toute aide? Un moyen général de convertir le décalage et la longueur en quelque chose d'utilisable (comme un entier ou quelque chose) serait utile.


0 commentaires

3 Réponses :


6
votes

Vous voulez String # Déballez .


2 commentaires

C'était ça. Déballez ('l *') est ce dont j'avais besoin.


Vous devriez explicitement utiliser les déballums Little-Endian ou Big-Endian au lieu de Native-Endian, pour garder un peu de portabilité.



2
votes

Vous pouvez également consulter Bitstruct qui offre une belle interface de haut niveau pour analyse Données binaires.


0 commentaires

2
votes

Découvrez le joyau de la liaison, ainsi que les alternatives qu'il répertorie:

http://bindata.rubyforge.org/#alternatives


0 commentaires