Zweimal IncludeBinary

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Eckhard.S
Beiträge: 136
Registriert: 22.07.2006 17:19
Wohnort: Meschede/Sauerland

Zweimal IncludeBinary

Beitrag von Eckhard.S »

Text 1 hat drei Buchstaben und Text 2 hat 5 Buchstaben.
Wie geht das mit zweimal IncludeBinary richtig?. Momentan besteht PeekS(?drei) aus 9 Buchstaben (Text 1 + Text 2+ ?) anstatt 3.
Wie kann man es trennen?
Ist am Ende immer genau ein zusätzliches Zeichen?

Code: Alles auswählen

;PB4


  ; 1. Text 
  
    TextString$ = PeekS(?drei)                          
    AnzahlBuchstaben = Len(TextString$)
    
    Debug TextString$
    Debug "Anzahl: " + Str(AnzahlBuchstaben)
    
    For i = 1 To AnzahlBuchstaben
    Debug Asc(Mid(TextString$,i,1))
    Next i 
    

; 2. Text 
  
    TextString$ = PeekS(?fuenf)                         
    AnzahlBuchstaben = Len(TextString$)
    
    Debug " "
    Debug TextString$
    Debug "Anzahl: " + Str(AnzahlBuchstaben)
            

DataSection
  drei: 
  IncludeBinary "./text-mit-3-buchstaben.txt" ; Dateiinhalt: aaa
EndDataSection

DataSection  
  fuenf:
  IncludeBinary "./text-mit-5-buchstaben.txt" ; Dateiinhalt: bbbbb
  IncludeEnd:
EndDataSection

Viele Grüße aus dem Sauerland
Eckhard

PureBasic 4.0 Vollversion, WinXP
Make a better world :D
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

du musst sicherstellen, dass der string mit einem NULLbyte abgeschlossen wird,
damit du ihn per PeekS() ausm speicher holen kannst.

das ist bei simpler einbindung von textfiles nicht der fall.

du hast auch im Notepad keine möglichkeit, das Nullbyte einzufügen.


das zusätzliche zeichen entsteht irgendwie... k.a.

aber der string ist nur deshalb da zuende, weil dein programm da zuende ist.

wenn du noch ein

Code: Alles auswählen

Data.s "hallo zusatztest"
an deinen code anfügst, dann wird PeekS das auch noch einlesen.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
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

Beitrag von ts-soft »

IncludeBinary ist zum Einbinden von Dateien! Meinste vielleicht sowas:

Code: Alles auswählen

DataSection
  drei:
  Data.s "aaa"
  Data.b 0
EndDataSection

DataSection 
  fuenf:
  Data.s "bbbbb"
  Data.b 0
EndDataSection
Die Data.b 0 sind nur zur Sicherheit
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
Eckhard.S
Beiträge: 136
Registriert: 22.07.2006 17:19
Wohnort: Meschede/Sauerland

Beitrag von Eckhard.S »

Ja, jetzt klappt es :D

Durch das Data.b 0 wird das Null-byte geschrieben. Danke! :allright:

Code: Alles auswählen

;PB4


  ; 1. Text 
  
    TextString$ = PeekS(?drei)                          
    AnzahlBuchstaben = Len(TextString$)
    
    Debug TextString$
    Debug "Anzahl: " + Str(AnzahlBuchstaben)
    
    For i = 1 To AnzahlBuchstaben
    Debug Asc(Mid(TextString$,i,1))
    Next i 
    

; 2. Text 
  
    TextString$ = PeekS(?fuenf)                         
    AnzahlBuchstaben = Len(TextString$)
    
    Debug " "
    Debug TextString$
    Debug "Anzahl: " + Str(AnzahlBuchstaben)
    
    For i = 1 To AnzahlBuchstaben
    Debug Asc(Mid(TextString$,i,1))
    Next i         

DataSection
  drei: 
  IncludeBinary "./text-mit-3-buchstaben.txt" ; Dateiinhalt: aaa
  Data.b 0 

EndDataSection

DataSection  
  fuenf:
  IncludeBinary "./text-mit-5-buchstaben.txt" ; Dateiinhalt: bbbbb
  Data.b 0 
EndDataSection
Viele Grüße aus dem Sauerland
Eckhard

PureBasic 4.0 Vollversion, WinXP
Make a better world :D
Antworten