Data to Binary

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
udg
Beiträge: 568
Registriert: 20.06.2013 23:27

Data to Binary

Beitrag von udg »

Hallo,
mal wieder hatte ich die Unterhaltung bzgl inkludierte Daten wie Grafiken oder sonstiges als Data Block im Code.

Ich nutze herfür die sehr unkonventionelle Methode über PureForm (ImageGadget).

Nun habe ich mir gedacht ein kleines Tool zu schreiben, dass ich auf der Linken Seite per Drag n Drop (Datei reinziehen die gewandelt werden soll) reinziehen kann und auf der rechten Seite, ein EditorGadget den Codeblock anzeigen, den ich dann einfach kopiere und in meinen Code einfügen kann.

Wie kann ich ansetzen dies zu realisieren? Welche Umrechnung muss man dafür nehmen?

hier das Video Tutorial wie ich es seit je her mache:
https://youtu.be/5bfVARIOQSw

Ich ziehe also zB. links einen Shader.fx rein und per klick auf Button wird dann umgewandelt und.....

als Ausgabe im EditorGadget zeigt es mir den Datablock so an:

Code: Alles auswählen

 DataSection
Shader5: 
;{ Size = 1373 bytes
  Data.l $50202F2F,$2E332053,$65762030,$6F697372,$0D0A0D6E,$6F6C660A,$20327461,$6F736572,$6974756C,$3D206E6F,$30387B20,$30362C30
  Data.l $203B7D30,$6D202F2F,$20737375,$206E616D,$67726F76,$6E656265,$65646F20,$69652072,$6361666E,$6C612068,$61762073,$62616972
  Data.l $FC20656C,$67726562,$6E656265,$6C660A0D,$2074616F,$656D6974,$0D0A0D3B,$6F6C660A,$20347461,$6853794D,$72656461,$6F6C6628
  Data.l $20327461,$20786554,$4554203A,$4F4F4358,$20294452,$4F43203A,$0D524F4C,$0A0D7B0A,$66202020,$74616F6C,$6F432034,$3B726F6C
  Data.l $0A0D0A0D,$66202020,$74616F6C,$3D207820,$78655420,$2A20782E,$73657220,$74756C6F,$2E6E6F69,$0D3B2078,$2020200A,$616F6C66
  Data.l $20792074,$6554203D,$20792E78,$6572202A,$756C6F73,$6E6F6974,$0D3B792E,$200A0D0A,$6C662020,$2074616F,$30766F6D,$78203D20
  Data.l $632B792B,$7328736F,$74286E69,$29656D69,$292E322A,$3030312A,$69732B2E,$2F78286E,$2E303031,$30312A29,$3B2E3030,$20200A0D
  Data.l $6F6C6620,$6D207461,$2031766F,$2079203D,$7220202F,$6C6F7365,$6F697475,$20792E6E,$2E30202F,$202B2032,$656D6974,$200A0D3B
  Data.l $6C662020,$2074616F,$32766F6D,$78203D20,$20202F20,$6F736572,$6974756C,$782E6E6F,$30202F20,$3B20322E,$20200A0D,$6F6C6620
  Data.l $63207461,$203D2031,$28736261,$286E6973,$31766F6D,$6D69742B,$322F2965,$6F6D2B2E,$322F3276,$6F6D2D2E,$6D2D3176,$2B32766F
  Data.l $656D6974,$0A0D3B29,$66202020,$74616F6C,$20326320,$6261203D,$69732873,$3163286E,$6E69732B,$766F6D28,$30312F30,$2B2E3030
  Data.l $656D6974,$69732B29,$2F79286E,$2B2E3034,$656D6974,$69732B29,$7828286E,$2F29792B,$2E303031,$2E332A29,$0D3B2929,$2020200A
  Data.l $616F6C66,$33632074,$61203D20,$73287362,$63286E69,$6F632B32,$6F6D2873,$6D2B3176,$2B32766F,$2B293263,$28736F63,$32766F6D
  Data.l $69732B29,$2F78286E,$30303031,$2929292E,$200A0D3B,$65722020,$6E727574,$6C6F4320,$3D20726F,$6F6C6620,$28347461,$2C316320
  Data.l $632C3263,$2E312C33,$0D3B2930,$0A0D7D0A,$2F2F0A0D,$2D2D2D20,$2D2D2D2D,$2D2D2D2D,$2D2D2D2D,$2D2D2D2D,$2D2D2D2D,$2D2D2D2D
  Data.l $2D2D2D2D,$2D2D2D2D,$2D2D2D2D,$2D2D2D2D,$0A0D2D2D,$56202F2F,$65747265,$68532078,$72656461,$0A0D0A0D,$75727473,$56207463
  Data.l $4E495F53,$0D545550,$0A0D7B0A,$20202020,$616F6C66,$70203374,$7469736F,$096E6F69,$4F50203A,$49544953,$0D3B4E4F,$2020200A
  Data.l $6F6C6620,$20327461,$74786574,$30657275,$20202020,$54203A20,$4F435845,$3044524F,$7D0A0D3B,$0D0A0D3B,$7274730A,$20746375
  Data.l $4F5F5356,$55505455,$7B0A0D54,$20200A0D,$66202020,$74616F6C,$70682034,$7469736F,$206E6F69,$4F50203A,$49544953,$0D3B4E4F
  Data.l $2020200A,$6C662020,$3274616F,$78657420,$65727574,$3A202030,$58455420,$524F4F43,$0D3B3044,$0D3B7D0A,$560A0D0A,$554F5F53
  Data.l $54555054,$76796D20,$56202873,$4E495F53,$20545550,$29204E49,$0D7B0A0D,$2020200A,$5F535620,$5054554F,$4F205455,$0D3B5455
  Data.l $200A0D0A,$4F202020,$682E5455,$69736F70,$6E6F6974,$66203D20,$74616F6C,$4E492834,$736F702E,$6F697469,$20782E6E,$2E4E492C
  Data.l $69736F70,$6E6F6974,$2C20792E,$702E4E49,$7469736F,$2E6E6F69,$31202C7A,$0A0D3B29,$20202020,$2E54554F,$74786574,$30657275
  Data.l $49203D20,$65742E4E,$72757478,$0D3B3065,$2020200A,$74657220,$206E7275,$3B54554F,$0D7D0A0D,$202F2F0A,$2D2D2D2D,$2D2D2D2D
  Data.l $2D2D2D2D,$2D2D2D2D,$2D2D2D2D,$2D2D2D2D,$2D2D2D2D,$2D2D2D2D,$2D2D2D2D,$2D2D2D2D,$2D2D2D2D,$0D0A0D2D,$6365740A,$71696E68
  Data.l $50206575,$5074736F,$65636F72,$0A0D7373,$200A0D7B,$70202020,$20737361,$0A0D3170,$20202020,$200A0D7B,$20202020,$2F2F2020
  Data.l $67694C20,$6E697468,$203D2067,$65757254,$200A0D3B,$20202020,$65562020,$78657472,$64616853,$3D207265,$6D6F6320,$656C6970
  Data.l $5F737620,$20305F33,$7376796D,$0D3B2928,$2020200A,$20202020,$78695020,$68536C65,$72656461,$63203D20,$69706D6F,$7020656C
  Data.l $5F335F73,$794D2030,$64616853,$29287265,$200A0D3B,$7D202020,$0A0D0A0D
  Data.b $7D
;}
 Shader5_End:
EndDataSection
Shader5: möchte ich selber mit einem StringGadget als Name vergeben können sowie: Shader5_End:

Viele Grüße
PB v5.43 LTS + v6.02 LTS | Windows 7 x86 + 11 x64 - Gforce RTX 4090 - AMD Ryzen 9 5900X 12-Core Processor 4.2 GHz - 64,0 GB RAM,
ASUSTEK TUF Gaming X570 Plus
ASUS ROG Thor-1200P Platinum (1200W, Aura Sync, OLED Display, 0dB-Cooling)
1x 1 TByte Samsung MZ-V7S500BW 970 EVO Plus 1 TB NVMe M.2 Internal SSD
1x 2 TByte Samsung MZ-V7S2T0BW 970 EVO Plus 2 TB NVMe M.2 Internal SSD
von BiSONTE!. Kauft Hardware gern bei ihm.
Monitor:
LG 38GL950G-B 95 (38 Zoll) Ultragear Curved 21: 9 UltraWide QHD IPS
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8820
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: Data to Binary

Beitrag von NicTheQuick »

Benutzeravatar
udg
Beiträge: 568
Registriert: 20.06.2013 23:27

Re: Data to Binary

Beitrag von udg »

Aha, danke. Schau ich mir an. Bei solch einem Vorhaben wusste ich nicht wirklich wonach ich suchen sollte,ob es das schon gibt.
Danke dir
PB v5.43 LTS + v6.02 LTS | Windows 7 x86 + 11 x64 - Gforce RTX 4090 - AMD Ryzen 9 5900X 12-Core Processor 4.2 GHz - 64,0 GB RAM,
ASUSTEK TUF Gaming X570 Plus
ASUS ROG Thor-1200P Platinum (1200W, Aura Sync, OLED Display, 0dB-Cooling)
1x 1 TByte Samsung MZ-V7S500BW 970 EVO Plus 1 TB NVMe M.2 Internal SSD
1x 2 TByte Samsung MZ-V7S2T0BW 970 EVO Plus 2 TB NVMe M.2 Internal SSD
von BiSONTE!. Kauft Hardware gern bei ihm.
Monitor:
LG 38GL950G-B 95 (38 Zoll) Ultragear Curved 21: 9 UltraWide QHD IPS
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Data to Binary

Beitrag von ts-soft »

PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
udg
Beiträge: 568
Registriert: 20.06.2013 23:27

Re: Data to Binary

Beitrag von udg »

ts-soft hat geschrieben:Etwas ähnliches: http://www.purebasic.fr/english/viewtopic.php?p=374183
ja perfekt, da muss ich nicht erst neu Coden. :D

Top

eine Frage:
was ist der Unterschied zwischen:

Code: Alles auswählen

Data.q
und

Code: Alles auswählen

Data.l
PB v5.43 LTS + v6.02 LTS | Windows 7 x86 + 11 x64 - Gforce RTX 4090 - AMD Ryzen 9 5900X 12-Core Processor 4.2 GHz - 64,0 GB RAM,
ASUSTEK TUF Gaming X570 Plus
ASUS ROG Thor-1200P Platinum (1200W, Aura Sync, OLED Display, 0dB-Cooling)
1x 1 TByte Samsung MZ-V7S500BW 970 EVO Plus 1 TB NVMe M.2 Internal SSD
1x 2 TByte Samsung MZ-V7S2T0BW 970 EVO Plus 2 TB NVMe M.2 Internal SSD
von BiSONTE!. Kauft Hardware gern bei ihm.
Monitor:
LG 38GL950G-B 95 (38 Zoll) Ultragear Curved 21: 9 UltraWide QHD IPS
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Data to Binary

Beitrag von RSBasic »

Das sind Datentypen. .q ist Quad, hat eine Größe von 8 Bytes und hat einen Bereich von -9223372036854775808 bis +9223372036854775807.
Und .l ist Long, hat eine Größe von 4 Bytes und hat einen Bereich von -2147483648 bis +2147483647.
Je größer der Bereich ist, desto größere Zahlen können gespeichert werden.
Weitere Informationen siehe PB-Hilfe unter "Variablen, Typen und Operatoren".
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
udg
Beiträge: 568
Registriert: 20.06.2013 23:27

Re: Data to Binary

Beitrag von udg »

RSBasic hat geschrieben:Das sind Datentypen. .q ist Quad, hat eine Größe von 8 Bytes und hat einen Bereich von -9223372036854775808 bis +9223372036854775807.
Und .l ist Long, hat eine Größe von 4 Bytes und hat einen Bereich von -2147483648 bis +2147483647.
Je größer der Bereich ist, desto größere Zahlen können gespeichert werden.
Weitere Informationen siehe PB-Hilfe unter "Variablen, Typen und Operatoren".
Danke für die Information. :allright:
PB v5.43 LTS + v6.02 LTS | Windows 7 x86 + 11 x64 - Gforce RTX 4090 - AMD Ryzen 9 5900X 12-Core Processor 4.2 GHz - 64,0 GB RAM,
ASUSTEK TUF Gaming X570 Plus
ASUS ROG Thor-1200P Platinum (1200W, Aura Sync, OLED Display, 0dB-Cooling)
1x 1 TByte Samsung MZ-V7S500BW 970 EVO Plus 1 TB NVMe M.2 Internal SSD
1x 2 TByte Samsung MZ-V7S2T0BW 970 EVO Plus 2 TB NVMe M.2 Internal SSD
von BiSONTE!. Kauft Hardware gern bei ihm.
Monitor:
LG 38GL950G-B 95 (38 Zoll) Ultragear Curved 21: 9 UltraWide QHD IPS
Antworten