Datei Verstecken
- Tsuki-Namida
- Beiträge: 633
- Registriert: 17.11.2005 13:27
- Kontaktdaten:
Datei Verstecken
Hallo,
ich möchte eine Datei in einer anderen "verstecken" bzw. direckt dahinter setzen.
Ich habe diesen consolen Befehl für Windows gefunden:
copy /b meinbild.jpg + geheim.rar neuesbild.jpg
Ich Möchte diesen Befehl aber für Linux (Ubuntu) und für Windows in ein Tool haben...
Ich hoffe das mir jemand helfen kann...
[Edit]
Ach ja... Ich habe PureBasic 5.11
ich möchte eine Datei in einer anderen "verstecken" bzw. direckt dahinter setzen.
Ich habe diesen consolen Befehl für Windows gefunden:
copy /b meinbild.jpg + geheim.rar neuesbild.jpg
Ich Möchte diesen Befehl aber für Linux (Ubuntu) und für Windows in ein Tool haben...
Ich hoffe das mir jemand helfen kann...
[Edit]
Ach ja... Ich habe PureBasic 5.11

Re: Datei Verstecken
Lad die Datei mit ReadData() in den Speicher und öffne anschließend die andere Datei, die du vergrößern möchtest. Ermittle die Größe mit Lof() und setze den Dateicursor mit FileSeek(). Dann nur noch mit WriteData() deine geladene Datei anhängen. Fertig.
- NicTheQuick
- Ein Admin
- Beiträge: 8838
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Re: Datei Verstecken
Oder beide Quelldateien öffnen und nacheinander in die Zieldatei schreiben ohne Puffer. Denn PB hat ja schon seinen eigenen Puffer.
Code: Alles auswählen
Procedure TwoFilesIntoOne(srcFile1.s, srcFile2.s, destFile.s)
Protected hSrcFile1.i, hSrcFile2.i, hDestFile.i, byte.b
hSrcFile1 = ReadFile(#PB_Any, srcFile1) ; Öffne erste Datei
If (Not hSrcFile1)
ProcedureReturn #False
EndIf
hSrcFile2 = ReadFile(#PB_Any, srcFile2) ; Öffne zweite Datei
If (Not hSrcFile2)
CloseFile(hSrcFile1)
ProcedureReturn #False
EndIf
hDestFile = CreateFile(#PB_Any, destFile) ; Öffne Zieldatei zum Schreiben
If (Not hDestFile)
CloseFile(hSrcFile1)
CloseFile(hSrcFile2)
ProcedureReturn #False
EndIf
While Not Eof(hSrcFile1) ; Schreibe Byte für Byte der ersten Datei in die Zieldatei
byte = ReadByte(hSrcFile1)
WriteByte(hDestFile, byte)
Wend
While Not Eof(hSrcFile2) ; Schreibe Byte für Byte der zweiten Datei in die Zieldatei
byte = ReadByte(hSrcFile2)
WriteByte(hDestFile, byte)
Wend
; Schließe alle Dateien
CloseFile(hSrcFile1)
CloseFile(hSrcFile2)
CloseFile(hDestFile)
ProcedureReturn #True
EndProcedure
Debug TwoFilesIntoOne("/home/nicolas/tmp/bla1.txt", "/home/nicolas/tmp/bla1.txt", "/home/nicolas/tmp/blubb.txt")- Tsuki-Namida
- Beiträge: 633
- Registriert: 17.11.2005 13:27
- Kontaktdaten:
Re: Datei Verstecken
...mit PB5.10 lässt sich das sogar noch etwas abkürzen, Stichwort: #PB_File_Append.RSBasic hat geschrieben:Lad die Datei mit ReadData() in den Speicher und öffne anschließend die andere Datei, die du vergrößern möchtest. Ermittle die Größe mit Lof() und setze den Dateicursor mit FileSeek(). Dann nur noch mit WriteData() deine geladene Datei anhängen. Fertig.
"Menschenskinder, das Niveau dieses Forums singt schon wieder!" — GronkhLP ||| "ich hogffe ihr könnt den fehle endecken" — Marvin133 ||| "Ideoten gibts ..." — computerfreak ||| "Jup, danke. Gruss" — funkheld
Re: Datei Verstecken
Ah, habs nicht gewusst, danke. 
- NicTheQuick
- Ein Admin
- Beiträge: 8838
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Re: Datei Verstecken
Ich bin davon ausgegangen, dass eine neue Datei daraus werden soll, wie er es in seinem ersten Post im Beispiel hatte.
- Falko
- Admin
- Beiträge: 3535
- Registriert: 29.08.2004 11:27
- Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit) - Kontaktdaten:
Re: Datei Verstecken
Das spart natürlich viel Code und lässt sich auch
schön für ein Consoleprogramm umschreiben
@RSBasic ich weiß 
Beim copy /B File1.txt + File2.txt + File... werden die einzelnen Dateien zu File1.txt binär kopiert.
So wie NTQ es geschrieben hat, kann man den Copy /B auch dazu nutzen um eine neue Datei zu
erzeugen, wie z.B. eine PRN-Datei für den Drucker.
Das sähe dann so aus: copy /B File1.txt + File2.txt + File3.BMP Ausdruck.PRN
schön für ein Consoleprogramm umschreiben
Code: Alles auswählen
file1.s = OpenFileRequester("Datei zum erweitern auswählen...","","Text (.txt)|*.txt|All files (*.*)|*.*",0)
If file1
file2.s = OpenFileRequester("Anzuhängende Datei auswählen...","","Text (.txt)|*.txt|All files (*.*)|*.*",0)
If file2
If ReadFile(0, file2)
length = Lof(0)
*MemoryID = AllocateMemory(length)
If *MemoryID
bytes = ReadData(0, *MemoryID, length)
Antwort.l=MessageRequester("Hinweis","Soll die Originaldatei überschrieben werden?",#PB_MessageRequester_YesNo )
If Antwort=#PB_MessageRequester_No
file3.s = SaveFileRequester("Bitte geben sie einen neuen Dateinamen an...","","Text (.txt)|*.txt|All files (*.*)|*.*",0)
CopyFile(file1,file3)
file1=file3
EndIf
If OpenFile(1,file1,#PB_File_Append)
WriteData(1,*MemoryID,length)
CloseFile(1)
Else
MessageRequester("Fehler","Datei2 nicht vorhanden")
EndIf
EndIf
CloseFile(0)
EndIf
EndIf
Else
MessageRequester("Fehler","Datei1 nicht vorhanden")
EndIfBeim copy /B File1.txt + File2.txt + File... werden die einzelnen Dateien zu File1.txt binär kopiert.
So wie NTQ es geschrieben hat, kann man den Copy /B auch dazu nutzen um eine neue Datei zu
erzeugen, wie z.B. eine PRN-Datei für den Drucker.
Das sähe dann so aus: copy /B File1.txt + File2.txt + File3.BMP Ausdruck.PRN


