Seite 1 von 1

Daten exkludieren?

Verfasst: 14.02.2021 19:35
von Zerosurf

Code: Alles auswählen

  DataSection
    MapLabel:
    IncludeBinary "Data\map.data"
  EndDataSection

Hier wird eine Datei (map.data) inkludiert, aber wie kann ich diese Datei wieder exkludieren bzw als map.data in einen Ordner abspeichern?

Re: Daten exkludieren?

Verfasst: 14.02.2021 19:44
von mk-soft
An die Adresse der Daten (Label) bekommt man mit den Fragezeichen "?Label"

Code: Alles auswählen



Procedure SaveIncludeData(FileName.s, StartOfData, EndOfData)
  Protected r1, file, LenOfData
  file = CreateFile(#PB_Any, FileName)
  If file
    LenOfData = EndOfData - StartOfData
    r1 = WriteData(file, StartOfData, LenOfData)
    CloseFile(file)
  EndIf
  ProcedureReturn r1
EndProcedure

DataSection
  MapDataStart:
  IncludeBinary "Data\map.data"
  MapDataEnd:
EndDataSection

Debug SaveIncludeData("MapData.Dat", ?MapDataStart, ?MapDataEnd)

Re: Daten exkludieren?

Verfasst: 14.02.2021 19:48
von NicTheQuick
Zum Beispiel so:

Code: Alles auswählen

EnableExplicit

Procedure StoreFile(path.s, *dataBegin, *dataEnd)
	Protected hFile.i = OpenFile(#PB_Any, path)
	
	If Not hFile
		ProcedureReturn #False
	EndIf
	
	WriteData(hFile, *dataBegin, *dataEnd - *dataBegin)
	
	CloseFile(hFile)
	
	ProcedureReturn #True
EndProcedure

Define path.s = GetHomeDirectory() + "map.data"
If StoreFile(path, ?MapLabel, ?MapLabelEnd)
	Debug "Map wurde erfolgreich in " + path + " gespeichert."
Else
	Debug "Konnte Map nicht speichern. Ist " + path + " schreibgeschützt?"
EndIf


DataSection
	MapLabel:
		IncludeBinary "Data\map.data"
	MapLabelEnd:
EndDataSection
edit: mk-soft war schneller und auch den Rückgabewert von WriteData berücksichtigt. :allright:

Re: Daten exkludieren?

Verfasst: 14.02.2021 21:16
von Zerosurf
Super, vielen Dank NicTheQuick und mk-soft!
Das hilft sehr!

:D