Writestring zum Überschreiben

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
PureBuster
Beiträge: 40
Registriert: 30.05.2008 09:54
Computerausstattung: erbärmlich
Wohnort: Niedersachsen / Bremen

Writestring zum Überschreiben

Beitrag von PureBuster »

Hallo zusammen,

kann ich einen existierenden String in einer Textdatei direkt ändern?
Bislang habe ich immer die gesammte Textdatei eingelesen, mit truncateFile den Inhalt gelöscht und den neuen Inhalt in die Datei geschrieben. Das wird mit der Zeit etwas umständlich.
Schön wäre, wenn ich einen Bereich innerhalb einer Textdatei direkt überschreiben könnte...!?

Dankeschön für die Hilfe
...coden ist wie zum Psychoklempner gehn...manchmal muss man einfach drüber reden..
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

Re: Writestring zum Überschreiben

Beitrag von NicTheQuick »

Das kannst du doch. Allerdings muss der Text, den du ersetzen willst, genau so lang sind wie der Ersatztext. Ist das nicht der Fall, geht es etwas komplizierter.

Weißt du, an welcher Stelle in der Datei der zu ersetzende Text steht? Falls ja, dann sind deine Stichworte:
  • OpenFile()
  • FileSeek()
  • WriteString() / WriteData()
  • CloseFile()
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Writestring zum Überschreiben

Beitrag von Kiffi »

PureBuster hat geschrieben:mit truncateFile den Inhalt gelöscht
wieso denn das? Wenn Du CreateFile() verwendest, brauchst Du das nicht.

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
PureBuster
Beiträge: 40
Registriert: 30.05.2008 09:54
Computerausstattung: erbärmlich
Wohnort: Niedersachsen / Bremen

Re: Writestring zum Überschreiben

Beitrag von PureBuster »

Das mit dem createFile ist natürlich eine Alternative zum truncateFile.
Nun hab ich aber trotzdem noch ein Problemchen:
Die Dateien die ich da bearbeite sind reine ASCII-Texdateien. Wenn ich sie mit einem Texteditor öffne, wird mir als Dateieigenschaft angezeigt, das es sich um ein Datei im ANSI-Zeichensatz handelt. Soweit ich weiß, wird dies durch das Fehlen eines BOM deklariert.
Sobald ich nun mit PB ein File erstelle erklärt mir mein Texteditor stehts, dass es sich um eine datei im Zeichensatz UTF-8 handeln würde, selbst wenn ich kein BOM geschrieben habe oder

Code: Alles auswählen

WriteStringFormat(1,#PB_Ascii)
verwendet habe.
Leider muss ich das Prog im Unicode-Modus kompilieren, weil ich an anderen Stellen UTF-Files bearbeiten muss.
...coden ist wie zum Psychoklempner gehn...manchmal muss man einfach drüber reden..
Antworten