OpenFile löscht Dateiinhalt
OpenFile löscht Dateiinhalt
Hallo,
ich öffne eine Datei mit OpenFile und füge eine Zeile mit WritestringN ein.
Nach Überprüfung der Datei ist immer nur die eingefügte Zeile enthalten.
Er fügt also die Zeile nicht hinzu.
Wie kann ich nur eine Zeile hinzufügen ohne das die vorhandenen Zeilen gelöscht werden?
ich öffne eine Datei mit OpenFile und füge eine Zeile mit WritestringN ein.
Nach Überprüfung der Datei ist immer nur die eingefügte Zeile enthalten.
Er fügt also die Zeile nicht hinzu.
Wie kann ich nur eine Zeile hinzufügen ohne das die vorhandenen Zeilen gelöscht werden?
PB5 / Spiderbasic / WB14 / Win7 / Win8.1 / Win10 / Debian 9
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
Hallo dysti,
bin zwar schon etwas spät dran, vielleicht kannst du oder andere was mit meinem Code anfangen.
Es ist ein Code der Eingegebene Felder in die Datei schreibt.
Nen guten Rutsch noch ins Neue Jahr wünsche ich noch falls man sich nicht mehr sieht.
bin zwar schon etwas spät dran, vielleicht kannst du oder andere was mit meinem Code anfangen.
Es ist ein Code der Eingegebene Felder in die Datei schreibt.
Nen guten Rutsch noch ins Neue Jahr wünsche ich noch falls man sich nicht mehr sieht.
Code: Alles auswählen
If OpenWindow(0,216,0,450,300,"Verim giriş pencere",#PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar )
If CreateGadgetList(WindowID(0))
TextGadget(1, 20, 20, 150, 20, "Lütfen verinler girin") ;Bitte Daten eingeben
TextGadget(2, 20, 60, 60, 20, "İtalyanca"); Italienisch
StringGadget(3, 80, 60, 350, 20, "") ;Eingabefeld
TextGadget(4, 20, 100, 60, 20, "Türkce"); Türkisch
StringGadget(5, 80, 100, 350, 20, "")
TextGadget(6, 20, 140, 60, 20, "Almanca"); ,Deutsch
StringGadget(7, 80, 140, 350, 20, "")
TextGadget(8, 20, 180, 60, 20, "İngilizce"); Englisch
StringGadget(9, 80, 180, 350, 20, "")
ButtonGadget(10, 100, 240, 100, 30, "Yine sözler ekle"); Neue Wörter in Datei anfügen
ButtonGadget(11, 300, 240, 100, 30, "Kapat"); schliessen
EndIf
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_CloseWindow
Quit = 1
EndIf
If EventID = #PB_Event_Gadget
If EventGadget()=10
text1s.s = GetGadgetText(3) ;auslesen vom Stringgadget
ergebnis1s.s = LSet(text1s.s, 40) ;auffüllen/begrenzen des Stringgadget auf 40 Zeichen
text2s.s = GetGadgetText(5)
ergebnis2s.s = LSet(text2s.s, 40)
text3s.s = GetGadgetText(7)
ergebnis3s.s = LSet(text3s.s, 40)
text4s.s = GetGadgetText(9)
ergebnis4s.s = LSet(text4s.s, 40)
textgesamts.s = ergebnis1s.s+ergebnis2s.s+ergebnis3s.s+ergebnis4s.s ;zusammenlegen von den Feldern ( Gesamttext )
If OpenFile(1,"Wortschatz.dat")
laengel.l= Lof(1) ; ermitteln der Dateilaenge
FileSeek(1,laengel.l) ; setzt den Zeiger ans Dateiende
WriteStringN(1,textgesamts.s) ;schreibt den Gesamttext an das Ende von der Datei
CloseFile(1) ;schließt die Datei
EndIf
SetGadgetText(3, "") ;Eingabefelder werden gelöscht nachdem der
SetGadgetText(5, "") ;"Daten hinzufügen" BUTTON gedrückt wurde
SetGadgetText(7, "")
SetGadgetText(9, "")
EndIf
If EventGadget()=11
Quit = 1
EndIf
EndIf
Until Quit=1
EndIf
End
PB 4.02 (wegen Disphelper), 5.72 (Windows) (x64)
- Andre
- PureBasic Team
- Beiträge: 1765
- Registriert: 11.09.2004 16:35
- Computerausstattung: MacBook Core2Duo mit MacOS 10.6.8
Lenovo Y50 i7 mit Windows 10 - Wohnort: Saxony / Deutscheinsiedel
- Kontaktdaten:
Habe in Kurzform das folgende Beispiel der Hilfe von OpenFile() hinzugefügt:
Wenn Daten zu einer existierenden Datei hinzugefügt werden sollen, muss der Dateizeiger zuerst auf
das Ende der Datei gesetzt werden. Hierfür werden nach OpenFile() die Befehle FileSeek() und Lof() verwendet:Code: Alles auswählen
If OpenFile(0, "Test.txt") ; öffnet eine existierende Datei oder erstellt eine, wenn sie noch nicht existierte FileSeek(0, Lof(0)) ; springt an das Ende der Datei (das Ergebnis von Lof() wird hierfür verwendet) WriteStringN(0, "... another line at the end.") CloseFile(0) EndIf
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22