VB3-records met arbitraire lengte-reeksen?

Ik heb een binair bestand geschreven vanuit een VB3-programma. Het schrijft records die strings van willekeurige lengte bevatten.

Ik probeer deze bestanden nu te lezen en te converteren, maar ik weet niet hoe ik moet bepalen waar de ene string stopt en de andere begint. Is er een scheidingsteken of staat de lengte aan het begin ergens aangegeven?

3

2 antwoord

Na wat rondneuzen met een hex-editor, heb ik het volgende ontdekt:

  • Willekeurige lengte reeksen beginnen met een lengte byte, gevolgd door een nul byte, gevolgd door de reeks.
  • Arrays van elk type bevatten de volledige lengte van de array - bijv. een array-lengte 6 van longs (4 bytes) is een totaal van 24 bytes. Lege strings zijn hiervoor 2 bytes (lengte van 0 en nul byte).
3
toegevoegd

Ze zijn gescheiden of er is een patroon met een vaste lengte. Zoals we hieruit kunnen zien. Open het bestand met een hex-editor (veel hierover op google), kijk eens.

2
toegevoegd
Bedankt, ik zal een kijkje nemen.
toegevoegd de auteur sstephens, de bron