Binäre Datei einlesen, String anhängen, wieder abspeichern

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Sylvia
verheiratet<br>1. PureGolf-Gewinner
Beiträge: 487
Registriert: 29.08.2004 09:42
Wohnort: Old Europe

Beitrag von Sylvia »

FileSeek(Lof()-1) ist definitiv falsch
Basic Pur = PureBasic
Icke
Beiträge: 143
Registriert: 08.09.2004 13:19

Beitrag von Icke »

...aber keiner von euch hat die Datei eingelesen!

"Binäre Datei einlesen, String anhängen, wieder abspeichern"


:-P
Benutzeravatar
Batze
Beiträge: 1492
Registriert: 03.06.2005 21:58
Wohnort: Berlin
Kontaktdaten:

Beitrag von Batze »

Habs korrigiert!
Wie ich da drauf gekommen bin weiß ich aber auch nicht. :oops:
Warscheinlich weil ich da gerade erst aufgestanden war. :lol:
Hier sind meine Codes (aber die Seite geht gerade nicht):
http://www.basicpure.de.vu
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

redacid hat geschrieben:Das kommt davon, wenn man seit Ewigkeiten nichts mehr programmiert hat... /:->
Dann wärs mal Zeit für ein neues Projekt.
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.
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

> Das kommt davon, wenn man seit Ewigkeiten nichts mehr programmiert
> hat... /:->

was? wieso denn nicht? :shock:

> Apple Macintosh- und PureBasic für MacOS X-Benutzer

achso! Deshalb... :cool:

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
HeX0R
Beiträge: 3042
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Beitrag von HeX0R »

Icke hat geschrieben:...aber keiner von euch hat die Datei eingelesen!

"Binäre Datei einlesen, String anhängen, wieder abspeichern"


:-P
Das ginge dann z.B. so:

Code: Alles auswählen

FileName.s = "E:\Bilder\Pc140013.jpg"
Size.l     = FileSize(FileName)
a$         = "--- Das hängen wir dran ---"
If Size > 0
  *Buffer = AllocateMemory(Size + Len(a$) + 1)
  If *Buffer
    OpenFile(0, FileName)
    ReadData(*Buffer, Size)
    PokeS(*Buffer + Size, a$)
    FileSeek(0)
    WriteData(*Buffer, Size + Len(a$) + 1)
    CloseFile(0)
    FreeMemory(*Buffer)
  EndIf
EndIf
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 »

Oder etwas schneller so:

Code: Alles auswählen

FileName.s = "E:\Bilder\Pc140013.jpg"
Size = FileSize(FileName)
Buffer = AllocateMemory(Size)
If Size > -1 And Buffer > 0
  File = OpenFile(#PB_Any, FileName)
  If File
    ReadData(Buffer, Size)
    ; hier sollte dann wohl irgendwas passieren, bevor ich den Speicher freigebe
    WriteString("--- Das hängen wir dran ---")
    CloseFile(File)
  EndIf
  FreeMemory(Buffer)
EndIf
Warum sollte ich die vorhandenen Daten den nochmal schreiben und den Dateizeiger wieder auf 0 bewegen
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
NicTheQuick
Ein Admin
Beiträge: 8809
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

Beitrag von NicTheQuick »

Die erste Version mit dem [c]FileSeek()[/c] ist wohl am schnellsten.
Wieso kommen jetzt auf einmal noch so komplizierte Vorschläge? Warum etwas auslesen, was man gar nicht benutzt?
Benutzeravatar
freedimension
Admin
Beiträge: 1987
Registriert: 08.09.2004 13:19
Wohnort: Ludwigsburg
Kontaktdaten:

Beitrag von freedimension »

Weil der Original-Poster als Titel das hier gewählt hat
Binäre Datei einlesen, String anhängen, wieder abspeichern
und sich bisher noch nicht dazu geäußert hat, ob überhaupt etwas mit den eingelesenen Daten gemacht werden soll. Als Beispiel: Anzahl des Buchstaben "e" bestimmen und Ergebnis an Datei anhängen. Ist ein schwachsinniges Beispiel, ich weiß, aber es veranschaulicht das "was sein könnte" :)
Beginne jeden Tag als ob es Absicht wäre!
Bild
BILDblog
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 »

Deswegen diese Zeile:
>> ; hier sollte dann wohl irgendwas passieren, bevor ich den Speicher freigebe
in meinem Source :D
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
Antworten