Binäre Datei einlesen, String anhängen, wieder abspeichern
Binäre Datei einlesen, String anhängen, wieder abspeichern
Okay das macht man sicher mit OpenFile() ... und wie weiter?
Eine Schleife mit Read...(), aber welches genau für binäre Daten?
Vermisse so eine einfache Funktion wie in PHP:
$inhalt = implode("",file($datei));
Eine Schleife mit Read...(), aber welches genau für binäre Daten?
Vermisse so eine einfache Funktion wie in PHP:
$inhalt = implode("",file($datei));
Ein kleines Beispiel. Ich hab eine JPG mal erweitert, das Ergebnis bleibt weiterhin ohne irgendwelche Symptome ausführbar...
Danach die Ergebnisdatei einfach mal mit Hex oder Texteditor öffnen und ans Ende schaun.
.
Code: Alles auswählen
ReadFile(0,"d:\1.jpg")
CreateFile(1,"d:\2.jpg")
Repeat
UseFile(0)
a=ReadByte()
UseFile(1)
WriteByte(a)
Until Eof(0)
a$="--- Das hängen wir dran ---"
Repeat
zaehler+1
a=Asc(Mid(a$,zaehler,1))
WriteByte(a)
Until a=0
CloseFile(0)
CloseFile(1)
.
Es gibt doch FileSeek() !
Warum so umständlich?
Edit: Wie bin ich nur auf Lof()-1 gekommen? 
Warum so umständlich?

Code: Alles auswählen
OpenFile(0,"d:\1.jpg")
FileSeek(Lof())
a$="--- Das hängen wir dran ---"
WriteString(a$)
CloseFile(0)

Zuletzt geändert von Batze am 19.07.2005 19:44, insgesamt 1-mal geändert.
- 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
>> FileSeek(Lof()-1)
Warum -1, Sicher ??
Warum -1, Sicher ??
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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Also ich hab auch immer FileSeek(Lof()) benutzt (also ohne -1).
Ist meiner Meinung nach auch richtig. Wenn eine Datei 1 Byte groß ist und man ans Ende springen will, springt man an Stelle 1 und nicht 1-1 (0
), das wär ja das eine Byte was am Anfang steht.
Ist meiner Meinung nach auch richtig. Wenn eine Datei 1 Byte groß ist und man ans Ende springen will, springt man an Stelle 1 und nicht 1-1 (0


[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
- 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
Danke, so mach ich es auchDeeem2031 hat geschrieben:Also ich hab auch immer FileSeek(Lof()) benutzt (also ohne -1).
Ist meiner Meinung nach auch richtig. Wenn eine Datei 1 Byte groß ist und man ans Ende springen will, springt man an Stelle 1 und nicht 1-1 (0), das wär ja das eine Byte was am Anfang steht.

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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

- 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
EOF ist doch nur ein Flag, das #True ergibt wenn du das ende erreicht hast, du muß also durch die ganze Datei iterieren, was natürlich dauert. Zum anhängen von Daten wäre das umständlich und langsamredacid hat geschrieben:Es gibt doch auch eof() (End of file), oder irre ich mich da? Wäre noch etwas eleganter, wie ich finde

Nachtrag: ts-soft wahr 60 sekunden schneller als der düstere Drachen

Zuletzt geändert von ts-soft am 19.07.2005 16:06, insgesamt 1-mal geändert.
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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

-
- Beiträge: 6291
- Registriert: 29.08.2004 08:37
- Computerausstattung: Hoffentlich bald keine mehr
- Kontaktdaten:
Das ist aber nur zum rausfinden, ob die aktuelle Position dem End of File entspricht. Deswegen hat ja die Diskussion angefangenredacid hat geschrieben:Es gibt doch auch eof() (End of file), oder irre ich mich da? Wäre noch etwas eleganter, wie ich finde

Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.