Page 1 sur 1

Structure pour un header au chargement de fichier ASCII

Publié : dim. 16/nov./2014 16:32
par GallyHC
Bonjour,

Je trouve dommage que pour le chargement d'un header de fichier et surtout pour le rendre compatible en ASCII et Unicode, on soir obliger de faire tout a la main.

Avec un fichier ASCII simple et en mode non Unicode, on peu faire :

Code : Tout sélectionner

Structure lwo_header
  form.s{4}
  flen.l
  lwo2.s{4}
EndStructure

Protected header.lwo_header

; un simple (on a bien fait l'ouverture du ficher et tout forcment, la je fait au plus simple) :
ReadData(ifile, header, SizeOf(lwo_header))
; pour envoyer les données dans la structure.
Par contre si on compile en Unicode la rien de fonctionne (normal) et il faut faire en partant des même infos que dans l'exemple plus haut :

Code : Tout sélectionner

header\form = ReadString(ifile, #PB_Ascii, 4)
header\flen = ReadLong(ifile)
header\lwo2 = ReadString(ifile, #PB_Ascii, 4)
Alors pourquoi n'y a t'il pas une solution "simple" comme par exemple :

Code : Tout sélectionner

Structure lwo_header
  form.p-ascii{4}
  flen.l
  lwo2.p-ascii{4}
EndStructure
Car la c'est toujours chiant de tout faire surtout quand le header est plutôt grand (genre le chargement des ISO, que j'ai mis de coté a cause de cela) :

Cordialement,
GallyHC

Re: Structure pour UN header au chargement de fichier ASCII

Publié : dim. 16/nov./2014 17:15
par majikeyric
Tu charges normalement ton fichier (mais avec cette structure)

Code : Tout sélectionner

Structure lwo_header
  form.a[4]
  flen.l
  lwo2.a[4]
EndStructure
et quand tu as besoin de faire des opérations sur un champ, tu fais par exemple:

Code : Tout sélectionner

If PeekS(@*header\form[0],4,#PB_Ascii)="TRUC"
....
EndIf

Re: Structure pour un header au chargement de fichier ASCII

Publié : lun. 17/nov./2014 12:23
par GallyHC
Bonjour,

majikeyric > merci pour le code (mais, c'est toujours une "bidouille").

GallyHC