IncludeFile ou IncludeBinary ?

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
SPH
Messages : 4949
Inscription : mer. 09/nov./2005 9:53

IncludeFile ou IncludeBinary ?

Message par SPH »

Salut,

Je voulais inclure un fichier dans un code PB et je voulais le faire en transformant en data le fichier. Mais je sais qu'il y a 2 trucs que je devrais apprendre pour de bon.
1> J'utilise IncludeFile ou bien IncludeBinary ?
2> en mettant "dta:" avant le fichier inclut et "dta2:" apres, certain reussissent a connaitre la longueur du fichier inclu avec des "?" je crois. C'est quoi deja la syntaxe pour "soustraire" l'etiquette 2 a l'etiquette 1 ???!

Merci

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
gnozal
Messages : 832
Inscription : mar. 07/déc./2004 17:35
Localisation : France
Contact :

Re: IncludeFile ou IncludeBinary ?

Message par gnozal »

SPH a écrit :1> J'utilise IncludeFile ou bien IncludeBinary ?
IncludeBinary
SPH a écrit :2> en mettant "dta:" avant le fichier inclut et "dta2:" apres, certain reussissent a connaitre la longueur du fichier inclu avec des "?" je crois. C'est quoi deja la syntaxe pour "soustraire" l'etiquette 2 a l'etiquette 1 ???!
Oui, il faut soustraire l'étiquette de début de l'étiquette de fin.

Personellement, j'utilise les Datas (avantage : tout dans la même source). Mais c'est l'équivalent de IncludeBinary.
Ci-dessous, 2 exemples :

Exemple 1 avec une image (sans compression) :

Code : Tout sélectionner

Enumeration
  #Window_0
EndEnumeration
Enumeration
  #Image_0
EndEnumeration
Enumeration
  #Image_Image_0
EndEnumeration
DataSection
  Image_Image_0:
  Data.l $00010000,$20200001,$00010004,$02E80004,$00160000,$00280000,$00200000,$00400000,$00010000,$00000004,$02800000,$00000000
  Data.l $00000000,$00000000,$00000000,$00000000,$80000000,$00800000,$80800000,$00000000,$80000080,$00800080,$80800080,$C0C00080
  Data.l $FF0000C0,$00FF0000,$FFFF0000,$00000000,$FF0000FF,$00FF00FF,$FFFF00FF,$000000FF,$00000000,$00000000,$00000000,$00000000
  Data.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
  Data.l $00000000,$00000000,$00000000,$00000000,$00000000,$BFBFFFB8,$00000000,$00000000,$8B000000,$FBFBFF8B,$000000FB,$00000000
  Data.l $B8080000,$BFBFFFB8,$0000A0BF,$00000000,$8BFF0000,$FBFBFF8B,$0000AAFA,$00000000,$F8BF0F00,$BFBFFFB8,$00A0AFBA,$00000000
  Data.l $FFFBFB00,$FBFB8F8B,$00FBFBAA,$00000000,$BFBFBF00,$BABFBFF8,$00BFBFAF,$00000000,$FBFBFB0B,$AAFB8FFF,$F0FBFBFB,$00000000
  Data.l $BFBFBF0F,$AF0000BF,$B0BFBFBF,$00000000,$FBEEEE0E,$0B0000F0,$F0FBFBFB,$00000000,$EEEEEE0E,$0E0000E0,$E0EEEEEE,$00000000
  Data.l $FBFBFB0B,$0B0000F0,$E0EEEEFB,$00000000,$BFBFBF0F,$FF0000BA,$B0BFBFBF,$00000000,$FBFBFB0B,$FFF8FBAA,$F0FBFBFB,$00000000
  Data.l $BABFBF0F,$8FFBBFAF,$B0BFBFFF,$00000000,$AAFBFB00,$B8F8FBFB,$00FBFBFF,$00000000,$AFBABF00,$8BFFBFBF,$00BFFF8F,$00000000
  Data.l $ABAA0B00,$B8FFFBFB,$00F0FFB8,$00000000,$BFAA0000,$8BFFBFBF,$00008F8B,$00000000,$FB0B0000,$B8FFFBFB,$0000B0B8,$00000000
  Data.l $BF000000,$8BFFBFBF,$0000008B,$00000000,$00000000,$B8FFFBFB,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
  Data.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
  Data.l $00000000,$00000000,$00000000,$FFFF0000,$FFFFFFFF,$FFFFFFFF,$FFFFFFFF,$F0FFFFFF,$C0FFFF0F,$80FFFF03,$00FFFF01,$00FEFF00
  Data.l $00FC7F00,$00F83F00,$00F81F00,$00F01F00,$00F00F00,$03F00F00,$03F00FC0,$03F00FC0,$00F00FC0,$00F00F00,$00F00F00,$00F80F00
  Data.l $00F81F00,$00FC1F00,$00FE3F00,$00FF7F00,$80FFFF00,$C0FFFF01,$F0FFFF03,$FFFFFF0F,$FFFFFFFF,$FFFFFFFF,$FFFFFFFF
  Data.b $FF,$FF
EndDataSection
Procedure OpenWindow_Window_0()
  If OpenWindow(#Window_0, 450, 200, 319, 89, "DataSection", #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_TitleBar)
    ImageGadget(#Image_0, 145, 25, 36, 36, CatchImage(#Image_Image_0, ?Image_Image_0), #PB_Image_Border)
  EndIf
EndProcedure

OpenWindow_Window_0()

Repeat
  Select WaitWindowEvent()
    Case #PB_Event_CloseWindow
      Select EventWindow()
        Case #Window_0
          CloseWindow(#Window_0)
          Break
      EndSelect
  EndSelect
Forever
Exemple 2 avec un autre fichier (avec compression) :

Code : Tout sélectionner

Procedure jaPBe_UnpackMemory(*Label, *BufferLen.Long) ; Unpack memory bank [returns *Buffer if success] Ex : *Buffer = jaPBe_UnpackMemory(?Label, @BufferLen.l)
  Protected *Buffer
  *BufferLen\l = PeekL(*Label + 2)
  If *BufferLen\l
    *Buffer = AllocateMemory(*BufferLen\l)
    If *Buffer
      If UnpackMemory(*Label, *Buffer) = #False
        ProcedureReturn 0
      EndIf
    EndIf
  EndIf
  ProcedureReturn *Buffer
EndProcedure
;  IncludeBinary "2DDrawing.pb" <JCalG1 Packed> [?Drawing_pb_Start , ?Drawing_pb_End]
;{ Original Size = 1490 bytes ; Packed Size = 774 bytes
DataSection
  Drawing_pb_Start:
  Data.l $05D2434A,$67E50000,$58C12DB5,$96A32005,$4044C014,$31BA4F78,$EE353801,$F644FA36,$45D1FA77,$CEF6F09D,$DD334267,$678F9DE4
  Data.l $B99DB7DC,$28C59B88,$7B66C3C0,$29898C4A,$8DE67C25,$514D5585,$08CCBF27,$C37DF0E0,$189D9E5D,$5580A73A,$725B1A59,$6F9322FF
  Data.l $4DAE179B,$EA6A35A2,$E5405ED9,$12A523F4,$61AB56A1,$DBE9829A,$9F0E9ECA,$1A08EA98,$C35FE6A4,$06A1B968,$D04BA9A6,$012C0A34
  Data.l $C7AFA765,$350237BF,$7819BA60,$053DE3AB,$0A37099C,$1E7A93C6,$ECBF1C5C,$BC44A918,$02E63411,$8A008B6C,$E68CD36E,$273D9AFD
  Data.l $02CD9B2E,$08680106,$9A513B33,$7E0853A7,$06CEE9F0,$3BD37C95,$8BD7828D,$0181C147,$C4B0D5CC,$8FDC713E,$A009025C,$6645F36D
  Data.l $9E805580,$D241EDC0,$C8D54541,$930338D1,$1C5D2722,$B7A9451B,$B9B0659A,$397B0011,$386A01AE,$259983F0,$12A5180D,$51080810
  Data.l $B602D90A,$91826EF5,$A395F18E,$E4AF12F3,$33C14C62,$E1DE1133,$8D76DC1C,$12771D17,$42806BA8,$8A318A87,$C6F04806,$E1B303DC
  Data.l $DC326015,$0AA0A651,$04CEDEF3,$694D0261,$F0D0767B,$52A1A350,$92D85718,$9D4D8A37,$A12F8B2A,$ED2804A8,$E35C61F2,$AA30164C
  Data.l $28086AA9,$042C946F,$10C80BA9,$AFB3B135,$EE0D4D71,$C554C2D5,$3DAD0B58,$51A02E65,$0002E0C0,$DDE030A7,$00DB234A,$8A2058A8
  Data.l $D66D8DCA,$981201BB,$9CD3BE77,$5B491316,$A62F284B,$06211467,$58688EF1,$BAE38189,$BB802C01,$B9CB42B3,$B28D0CA7,$6D02CCA7
  Data.l $017369D7,$516C2C20,$536904CB,$6249A4D0,$7A86AD03,$53DBCAB3,$462F5A96,$964716B2,$C3701A49,$35016BD0,$D2CB4E60,$56A0BCB5
  Data.l $3567CA2D,$93A57465,$4C94282C,$5A943B14,$62DDCC39,$16BA3948,$8E226E60,$CDF5FA4A,$D38E8561,$32830446,$1C050227,$407860FC
  Data.l $0614850E,$80FC03C7,$01AE9D07,$9AC1E86A,$40034345,$14613ADB,$F685C6FF,$1BE6AC0E,$08014187,$6CA2470C,$B1D22EB0,$918617FB
  Data.l $CEB469B1,$A4B3890E,$8700094C,$C2967683,$0A10F801,$1213C044,$00A7E212,$2342CC23,$3AE533C0,$A991148B,$9AEB8B6B,$2DC6B60B
  Data.l $E6EB22F3,$78B56CC9,$794CEF9A,$028D814E,$26E53CCB,$0ECBFE26,$080D97D0,$8DBADCA8,$0538E318,$D402DB8A,$C6CB3C85,$B58A9400
  Data.l $D659818B,$EA244D90,$1F8A58EB,$04B20C0D,$A2A269AC,$78CCC24C,$AD819CAD,$601F7328,$AD1AF6E4,$71728654,$8A8F60D9,$FEC81342
  Data.l $0000EC86
  Data.b $00,$00
  Drawing_pb_End:
EndDataSection ;}

Enumeration
  #Window_0
EndEnumeration
Enumeration
  #Editor_1
EndEnumeration

If OpenWindow(#Window_0, 450, 200, 395, 352, "DataSection", #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_TitleBar)
  EditorGadget(#Editor_1, 25, 15, 350, 315)
  *MonTexte = jaPBe_UnpackMemory(?Drawing_pb_Start, @LongueurTexte)
  If *MonTexte
    SetGadgetText(#Editor_1, PeekS(*MonTexte, LongueurTexte))
    FreeMemory(*MonTexte)
  EndIf
EndIf

Repeat
  Select WaitWindowEvent()
    Case #PB_Event_CloseWindow
      Select EventWindow()
        Case #Window_0
          CloseWindow(#Window_0)
          Break
      EndSelect
  EndSelect
ForEver
Répondre