Seite 1 von 1

Datei in .exe einbinden?

Verfasst: 25.08.2006 23:00
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

Verfasst: 25.08.2006 23:06
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

Verfasst: 25.08.2006 23:19
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?

Verfasst: 25.08.2006 23:22
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.

Verfasst: 25.08.2006 23:26
von ts-soft
Bloß wenn man die obere Procedure nicht benutzt, funktioniert das Programm
nicht mehr, wenn es woanders ist :wink:

Verfasst: 25.08.2006 23:29
von ChrisBa
taussendmal danke

Verfasst: 27.08.2006 13:21
von Alves
@ ts
Doch bei absoluten Pfaden funzt es doch trotzdem. Und außedem, er wolltew ja diese Pfade haben. :wink:

Verfasst: 27.08.2006 13:31
von Kaeru Gaman
was aber relativ unfug is, weil es das prog an ein einziges system bindet...