Datei in .exe einbinden?

Anfängerfragen zum Programmieren mit PureBasic.
ChrisBa
Beiträge: 50
Registriert: 22.07.2006 12:14

Datei in .exe einbinden?

Beitrag von ChrisBa »

Hallo
Ich bin auf der Suche nach den hier:
Ich hab eine datei: "CoolSkin.skd"
und die soll inder EXE gespeichert sein.
und dann möcht ich das die in der .exe beinhaltende Datei in einen ordner des Pcs gespeichert wird
wie mach ich das?
vielen Dank
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 »

Code: Alles auswählen

Procedure.s GetExePath()
  Protected Result.s
  If GetPathPart(ProgramFilename()) = #PB_Compiler_Home + "Compilers\"
    Result = GetCurrentDirectory()
  Else
    Result = GetPathPart(ProgramFilename())
  EndIf
  If Right(Result, 1) <> "\" : Result + "\" : EndIf
  ProcedureReturn Result
EndProcedure

DataSection
  startSkin:
  IncludeBinary "CoolSkin.skd" ; evtl. vollen Pfad angeben damit der Compiler es findet
  endSkin:
EndDataSection

File = CreateFile(#PB_Any, GetExePath() + "CoolSkin.skd")
If File
  WriteData(File, ?startSkin, ?endSkin - ?startSkin)
  CloseFile(File)
EndIf
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
ChrisBa
Beiträge: 50
Registriert: 22.07.2006 12:14

Beitrag von ChrisBa »

sry das ich das jetzt frage aber kannst du mir das als Beispiel zeigen.

Datei die in die EXE rein soll : C:\1\coolskin.skd
Datei die dann wenn man die exe startet in "den Ordner" gespeichert wird: C:\programme\test\

wie muss das ganze dann aussehen?
Benutzeravatar
Alves
Beiträge: 1208
Registriert: 19.04.2006 18:24
Kontaktdaten:

Beitrag von Alves »

Code: Alles auswählen

Procedure.s GetExePath()
  Protected Result.s
  If GetPathPart(ProgramFilename()) = #PB_Compiler_Home + "Compilers\"
    Result = GetCurrentDirectory()
  Else
    Result = GetPathPart(ProgramFilename())
  EndIf
  If Right(Result, 1) <> "\" : Result + "\" : EndIf
  ProcedureReturn Result
EndProcedure

DataSection
  startSkin:
  IncludeBinary "C:\1\coolskin.skd" ; evtl. vollen Pfad angeben damit der Compiler es findet
  endSkin:
EndDataSection

File = CreateFile(#PB_Any, "C:\programme\test\CoolSkin.skd")
If File
  WriteData(File, ?startSkin, ?endSkin - ?startSkin)
  CloseFile(File)
EndIf
Die obere Prozedur brauchst dann nicht mehr, die hat nur den Pfad der exe ermitelt.
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 »

Bloß wenn man die obere Procedure nicht benutzt, funktioniert das Programm
nicht mehr, wenn es woanders ist :wink:
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
ChrisBa
Beiträge: 50
Registriert: 22.07.2006 12:14

Beitrag von ChrisBa »

taussendmal danke
Benutzeravatar
Alves
Beiträge: 1208
Registriert: 19.04.2006 18:24
Kontaktdaten:

Beitrag von Alves »

@ ts
Doch bei absoluten Pfaden funzt es doch trotzdem. Und außedem, er wolltew ja diese Pfade haben. :wink:
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

was aber relativ unfug is, weil es das prog an ein einziges system bindet...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten