neunte Zeile bitte im Text ändern ?

Anfängerfragen zum Programmieren mit PureBasic.
funkheld
Beiträge: 636
Registriert: 31.12.2009 11:58

neunte Zeile bitte im Text ändern ?

Beitrag von funkheld »

Hallo, guten Tag.

wie kann man bitte die 10. Zeile ändern bzw die 10. Zeile neu setzen?

Danke.
gruss

--------------------
[compilation]
arch=strict
modules=a8_hardware,a8_os,a8_kernel,default_panic,stdlib
encoding=atascii
screen_encoding=atasciiscr

[allocation]
; OS turned on
zp_bytes=$80-$FF
segment_default_start=$2000
; BASIC turned off
segment_default_end=$BFFF

[define]
ATARI_8=1
WIDESCREEN=1
KEYBOARD=1
JOYSTICKS=2
HAS_BITMAP_MODE=1

[output]
;TODO
style=single
format=$FF,$FF,$E0,$02,$E1,$02,startaddr,startaddr,endaddr,allocated
extension=xex
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8679
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: neunte Zeile bitte im Text ändern ?

Beitrag von NicTheQuick »

Du öffnest die Datei, öffnest dann eine zweite leere Datei zum Schreiben und liest aus der ersten Zeilenweise mit ReadString(). Jede Zeile, die du gelesen hast, schreibst du wieder in die zweite Datei mit WriteString(). Pro Zeile zählst du mit einer Variable mit, damit du weißt in welcher Zeile du dich gerade befindest. Ist diese Variable = 10, dann bist du in der zehnten Zeile. An diesem Punkt schreibst du etwas anderes in die Zieldatei und nicht das, was du gerade gelesen hast.
Bild
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: neunte Zeile bitte im Text ändern ?

Beitrag von ccode_new »

Hallo!
neunte Zeile bitte im Text ändern ?
<>
wie kann man bitte die 10. Zeile ändern bzw die 10. Zeile neu setzen?
Was möchtest du genau neu setzen ?
Den Schlüssel, den Wert, oder beides ?

Beispiel:

Code: Alles auswählen

Global wert.s = "0" 

;Öffnet eine Preference-Datei
OpenPreferences(GetCurrentDirectory() +"test.pref")

;Gruppen untersuchen
ExaminePreferenceGroups()

;Für jede Gruppe
While NextPreferenceGroup()
  ;Schlüssel der aktuellen Gruppe untersuchen
  ExaminePreferenceKeys()
  ;alten Wert auslesen
  wert = ReadPreferenceString("segment_default_start", "0")
  If wert <> "0"
    ;Neuen Wert schreiben
    WritePreferenceString("segment_default_start", "$2001")
    If FlushPreferenceBuffers() = 0
      MessageRequester("Fehler", "Die Datei konnte nicht geändert werden.")
    EndIf
    Break
  EndIf
Wend

; Anzeigen des alten Werts
MessageRequester("test.pref",wert)

; Schließt die Preference-Datei
ClosePreferences() 
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
Nino
Beiträge: 1300
Registriert: 13.05.2010 09:26
Wohnort: Berlin

Re: neunte Zeile bitte im Text ändern ?

Beitrag von Nino »

funkheld (2020) hat geschrieben:neunte Zeile bitte im Text ändern ?
Das geht ganz ähnlich wie (2019) 3. Zeile in einer Textdatei ändern.
Benutzeravatar
juergenkulow
Beiträge: 188
Registriert: 22.12.2016 12:49
Wohnort: :D_üsseldorf-Wersten

Re: neunte Zeile bitte im Text ändern ?

Beitrag von juergenkulow »

Hallo funkheld,

Code: Alles auswählen

;Ändert den Wert von [allocation] segment_default_start
Datei.s=OpenFileRequester("funkheld.txt","funkheld.txt", "Alle (*.*)|*.*",0)
Wert.s=InputRequester("funkheld","[allocation]segment_default_start","$3000")
OpenPreferences(Datei) 
PreferenceGroup("allocation")
WritePreferenceString("segment_default_start",Wert)
ClosePreferences()
Die Werte für Datei, Wert, PerferenceGroup, WritePreferenceString, könnte man sich auch mit Parameter$ = ProgramParameter([Index]) besorgen. Wenn Du das Programm so gebrauchen kannst, kannst Du es ja hier posten.
Bitte stelle Deine Fragen, denn den Erkenntnisapparat einschalten entscheidet über das einzig bekannte Leben im Universum.

Jürgen Kulow Wersten :D_üsseldorf NRW D Europa Erde Sonnensystem Lokale_Flocke Lokale_Blase Orion-Arm
Milchstraße Lokale_Gruppe Virgo-Superhaufen Laniakea Sichtbares_Universum
Antworten