2015-12-27 1 views
1

Je vous écris une application de prise où je suis tenu de sérialiser et désérialiser données dans différents types de données tels que string, integer, objet (paire clé-valeur de chaîne et d'autres types de données) avec une longueur prédéfinie. Si vous étiez moi, comment feriez-vous pour y arriver?sérialisation/Deserialize données binaires

Je comprends que je ne l'ai pas fourni de code et c'est parce que je ne pouvais pas penser à un moyen d'atteindre ce que je voulais faire

Espérons que les gars me suggérer quelque chose.

données est formatée de la manière suivante:

1 $ est un marqueur booléenne où l'octet suivant indique si sa vraie ou fausse

$ 2 est un marqueur de chaîne suivie par 16 nombre entier de bits qui est le longueur de la chaîne

$ 3 est un marqueur d'objet = les données sont stockées dans les principales paires de valeurs où la clé est toujours une chaîne et la valeur peut être une chaîne, booléen, etc. Type d'objet se termine par $ 0 $ 0 9 $

+0

Comment les données sont-elles formatées? – Pierre

+0

@Pierre J'ai édité mon post :) – Spongebob

+1

Si vous avez votre propre format alors vous avez besoin de votre propre réalisation pour cela. Cependant, regardez ces liens, peut-être que vous trouverez son utilité: [Protocol Buffers en général] (https://en.wikipedia.org/wiki/Protocol_Buffers), [Fundamentals Code Library] (http://sourceforge.net/projects/fundementals /) contient du code Delphi/FPC pour protobuf. – Abelisto

Répondre

0

Créez des classes déclarant des propriétés pour toutes vos données et implémentez un convertisseur qui lit à partir du socket et remplit les objets. En fonction de la complexité de vos données, implémentez un interpreter qui pourrait vous aider.