IncludeBinary

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Elektrolurch
Beiträge: 168
Registriert: 11.10.2007 16:48
Wohnort: 49°26'51.46"N - 8°59'49.06"E
Kontaktdaten:

IncludeBinary

Beitrag von Elektrolurch »

hi all

ich habe mal wieder eine Frage.
Ich habe vor 1 Jahr schon einmal mit IncludeBinary gearbeitet und es funktionierte.

Ich habe nun in meiner Datasection

Code: Alles auswählen

DataSection
  patchbashstart :
  IncludeBinary "c:\HF_Tuner\Tools\patch.sh"
  patchbashend :
eine Linux bash eingebunden.
Wenn ich es dann wieder auf dem Zielrechner auspacken will.

Code: Alles auswählen

  If CreateFile(0, Ziel.s + "patch.sh")
    WriteData(0, ? patchbashstart, ?patchbashend -?patchbashstart)
    CloseFile(0)
  Else
    MessageRequester("Information", "Konnte Datei nicht erstellen!")
  EndIf
wird auch eine Datei angelegt, die Länge ist richtig aber es scheint nichts darin zu stehen.
Wenn ich mir die Originaldatei mit Notepad++ ansehe, sehe ich als Format > Unix
Die Kopie dagegen > DOS/Windows.
Was kann ich tun damit die Datei wieder ausführbar wird.

BYe André
Wer Rechtschreibfehler findet darf sie ruhig behalten, ich brauche sie nicht mehr, ich habe noch genug davon.
BildBildBild
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: IncludeBinary

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
Elektrolurch
Beiträge: 168
Registriert: 11.10.2007 16:48
Wohnort: 49°26'51.46"N - 8°59'49.06"E
Kontaktdaten:

Re: IncludeBinary

Beitrag von Elektrolurch »

Hi

leider stehe ich noch auf dem Schlauch.
Welche Attribute muß ich setzen das Original hat ja die richtigen.
Das Ziel hat die falschen, ein ändern bringt ja auch nichts mehr wenn die Datei leer ist.

BYe André
Wer Rechtschreibfehler findet darf sie ruhig behalten, ich brauche sie nicht mehr, ich habe noch genug davon.
BildBildBild
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: IncludeBinary

Beitrag von ts-soft »

Wenn sie leer ist, liegt das vielleicht an den leerzeichen vor : ?
Auf jedenfall sollte dann ja der MessageRequester erscheinen.
Die Attribute kannste ja auslesen vom Original, #PB_FileSystem_ExecUser
oder #PB_FileSystem_ExecAll wird wohl mind. nötig sein.
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
Elektrolurch
Beiträge: 168
Registriert: 11.10.2007 16:48
Wohnort: 49°26'51.46"N - 8°59'49.06"E
Kontaktdaten:

Re: IncludeBinary

Beitrag von Elektrolurch »

Hi
ich muß ehrlich sagen ich kann dir nicht folgen, wenn ich auch das Problem nun gelöst habe.
Ich habe es einfach auf diesem Rechner entpackt und dann das entpackte kopiert.

Code: Alles auswählen

  If CreateFile(0, "c:\HF_Tuner\patch.sh")
    WriteData(0, ? patchbashstart, ?patchbashend -?patchbashstart)
    CloseFile(0)
    CopyFile("c:\HF_Tuner\patch.sh", Ziel.s + "patch.sh")
  Else
    MessageRequester("Information", "Konnte Datei nicht erstellen!")
  EndIf
Das ist zwar nicht schön aber funktionell.
Es scheint wohl etwas schief zu laufen, wenn ich auf der Linuxfreigabe entpacke.

BYe André
Wer Rechtschreibfehler findet darf sie ruhig behalten, ich brauche sie nicht mehr, ich habe noch genug davon.
BildBildBild
Benutzeravatar
TomS
Beiträge: 1508
Registriert: 23.12.2005 12:41
Wohnort: München

Re: IncludeBinary

Beitrag von TomS »

? patchbashstart <- Da ist ein Leerzeichen! Vielleicht liegt es daran, hat ts-soft gemeint.
Zum ausführen von Bash-Skripten unter Linux muss die Berechtigung da sein (chmod() auf X). Deshalb sollst du dir SetFileAttributes() ansehen.
Benutzeravatar
Elektrolurch
Beiträge: 168
Registriert: 11.10.2007 16:48
Wohnort: 49°26'51.46"N - 8°59'49.06"E
Kontaktdaten:

Re: IncludeBinary

Beitrag von Elektrolurch »

Hi

Am Leerzeichen liegt es nicht. :cry:
Entpacken mit der gleichen Zeile auf das Windowslaufwerk geht ja auch.
Mit den Rechten der erstellten Datei auf dem Linuxrechner hat es ja eigentlich auch nichts zu tun.
Egal ob ich von Windows aus die Datei ansehe oder von Linux mit VI beide male ist die Datei zwar da, hat auch die richtige Länge, hat aber nur eine Zeile und ist voll mit Leerzeichen.
Ein chmod 755 hat deshalb auch keine Auswirkung mehr.

BYe Andre
Wer Rechtschreibfehler findet darf sie ruhig behalten, ich brauche sie nicht mehr, ich habe noch genug davon.
BildBildBild
Antworten