Hallo,
ich möchte ein Liga-Programm Programmieren.
Dafür ist es notwendig Daten zu speichern und zu laden.
Ich habe mal so ein Programm für ZX-Spectrum gehabt. Das war in einem Heft, wo Programme für den ZX-Spectrum drin waren. Leider habe ich das Heft nicht mehr.
Da wurde die Daten per Sequentieller Datei gespeichert und Geladen. Das auf einem Tonband. Das waren noch Zeiten.
Wie kann man das am einfachsten bei Purebasic machen?
Die Daten wären: Name, PL (Platz), PP (Punkteplus), PM (Punkteminus), TP (Toreplus), TM (Toreminus).
Gruß
Eberhard
Daten speichern und lesen?
- 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
Re: Daten speichern und lesen?
Das simpelste wäre es als CSV-Datei, also String in dem alle Werte durch einen Trenner z.B. semikolon getrennt,
als String gespeichert wird. Eine Zeile je Datensatz. Damit wäre auch ein importieren in eine Tabellenkalkulation oder
Datenbank gegeben.
Oder gleich eine Datenbank nutzen, wenn doch viele Daten anfallen.
Aufs Tonband mit PB piepen ist nicht mehr so der Hit
Gruß
Thomas
als String gespeichert wird. Eine Zeile je Datensatz. Damit wäre auch ein importieren in eine Tabellenkalkulation oder
Datenbank gegeben.
Oder gleich eine Datenbank nutzen, wenn doch viele Daten anfallen.
Aufs Tonband mit PB piepen ist nicht mehr so der Hit

Gruß
Thomas
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.

Re: Daten speichern und lesen?
Hallo Eberhard,
ich habe mir mal ein Programm geschrieben wo man Daten eingeben / löschen / aendern / ausgeben / nach Terminen ausgeben lassen kann.
Es ist schon etwas aelter mit alten Funktionen ( CreateGadgetList() ) was aber nicht stört.
Vielleicht hilft es dir was.
Tschüssle
Michael
ich habe mir mal ein Programm geschrieben wo man Daten eingeben / löschen / aendern / ausgeben / nach Terminen ausgeben lassen kann.
Es ist schon etwas aelter mit alten Funktionen ( CreateGadgetList() ) was aber nicht stört.
Vielleicht hilft es dir was.
Code: Alles auswählen
Enumeration ; Windows
#Hauptfenster
#Termineingabefenster
#Datenausgabe
#Datenloeschungauswahl
#Datenloeschungbestaetigung
#Datenaenderungauswahl
#Datenaenderungbestaetigung
#Terminausgabe
EndEnumeration
Enumeration ; Gadgets
; Hauptfenster
#Hauptfenster_lblInfo
#Hauptfenster_cmdTermineingabe
#Hauptfenster_cmdDatenausgabe
#Hauptfenster_cmdDatenloeschung
#Hauptfenster_cmdDatenaenderung
#Hauptfenster_cmdTerminausgabe
#Hauptfenster_cmdBeenden
; Termineingabefenster
#Termineingabefenster_lblInfo
#Termineingabefenster_lblDatum
#Termineingabefenster_txtDatum
#Termineingabefenster_lblTerminart
#Termineingabefenster_txtTerminart
#Termineingabefenster_lblName
#Termineingabefenster_txtName
#Termineingabefenster_cmdHinzufuegen
#Termineingabefenster_cmdBeenden
#Termineingabefenster_lblDatum2
#Termineingabefenster_lblTerminart2
#Termineingabefenster_lblName2
;Datenausgabe
#Datenausgabe_lig
;Datenloeschungauswahl
#Datenloeschungauswahl_lig
#Datenloeschungauswahl_lblDatensatz_markieren
#Datenloeschungauswahl_cmdWeiter
;Datenloeschungbestaetigung
#Datenloeschungbestaetigung_lblDatenloeschungsfenster
#Datenloeschungbestaetigung_lblDatum
#Datenloeschungbestaetigung_txtDatum
#Datenloeschungbestaetigung_lblTerminart
#Datenloeschungbestaetigung_txtTerminart
#Datenloeschungbestaetigung_lblName
#Datenloeschungbestaetigung_txtName
#Datenloeschungbestaetigung_cmdDaten_loeschen
#Datenloeschungbestaetigung_cmdAbbrechen
;Datenaenderungauswahl
#Datenaenderungauswahl_lig
#Datenaenderungauswahl_lblDatensatz_markieren
#Datenaenderungauswahl_cmdWeiter
;Datenaenderungbestaetigung
#Datenaenderungbestaetigung_lblDatenaenderungsfenster
#Datenaenderungbestaetigung_lblDatum
#Datenaenderungbestaetigung_txtDatum
#Datenaenderungbestaetigung_lblTerminart
#Datenaenderungbestaetigung_txtTerminart
#Datenaenderungbestaetigung_lblName
#Datenaenderungbestaetigung_txtName
#Datenaenderungbestaetigung_cmdDaten_abspeichern
#Datenaenderungbestaetigung_cmdAbrechen
#Datenaenderungbestaetigung_lbl10_Zeichen
#Datenaenderungbestaetigung_lbl15_Zeichen
#Datenaenderungbestaetigung_lbl25_Zeichen
;Terminausgabe
#Terminausgabe_lig
EndEnumeration
Procedure Open_Hauptfenster()
If OpenWindow(#Hauptfenster,216,0,320,250,"Terminprogramm HemSA - 10/2006",#PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_TitleBar )
If CreateGadgetList(WindowID(#Hauptfenster))
TextGadget (#Hauptfenster_lblInfo, 70, 20, 200, 30, "Wählen Sie bitte Ihre Anwendung aus")
ButtonGadget(#Hauptfenster_cmdTermineingabe, 30, 50, 100, 30, "Termineingabe")
ButtonGadget(#Hauptfenster_cmdDatenausgabe, 180, 50, 100, 30, "Datenausgabe")
ButtonGadget(#Hauptfenster_cmdDatenloeschung, 30, 100, 100, 30, "Datenlöschung")
ButtonGadget(#Hauptfenster_cmdDatenaenderung, 180, 100, 100, 30, "Datenänderung")
ButtonGadget(#Hauptfenster_cmdTerminausgabe, 30, 150, 100, 30, "Terminausgabe")
ButtonGadget(#Hauptfenster_cmdBeenden, 30, 200, 250, 30, "Beenden")
EndIf
EndIf
EndProcedure
Procedure Open_Termineingabefenster()
If OpenWindow(#Termineingabefenster,216,0,500,300,"Termineingabefenster",#PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_TitleBar )
If CreateGadgetList(WindowID(#Termineingabefenster))
TextGadget (#Termineingabefenster_lblInfo, 20, 20, 150, 20, "Dateneingabefenster")
TextGadget (#Termineingabefenster_lblDatum, 20, 60, 40, 20, "Datum")
StringGadget(#Termineingabefenster_txtDatum, 80, 60, 60, 20, "")
TextGadget (#Termineingabefenster_lblTerminart, 20, 100, 50, 20, "Terminart")
StringGadget(#Termineingabefenster_txtTerminart, 80, 100, 100, 20, "")
TextGadget (#Termineingabefenster_lblName, 20, 140, 60, 20, "Name")
StringGadget(#Termineingabefenster_txtName, 80, 140, 150, 20, "")
ButtonGadget(#Termineingabefenster_cmdHinzufuegen, 60, 200, 100, 30, "Daten hinzufügen")
ButtonGadget(#Termineingabefenster_cmdBeenden, 200, 200, 100, 30, "Beenden")
TextGadget (#Termineingabefenster_lblDatum2, 150, 60, 380, 20, "Nur die ersten 10 Zeichen werden übernommen")
TextGadget (#Termineingabefenster_lblTerminart2, 190, 100, 380, 20, "Nur die ersten 15 Zeichen werden übernommen")
TextGadget (#Termineingabefenster_lblName2, 240, 140, 380, 20, "Nur die ersten 25 Zeichen werden übernommen")
EndIf
EndIf
EndProcedure
Procedure lig_Fuellen(lig.l) ;lig=#Datenausgabe_lig??
If ReadFile(1,"termin.dat") ;Prozedur für das Füllen des ListIconGadget
laengel.l= Lof(1) ;von Datenausgabe, Löschungs-und Änderungsauswahl,
zeilenanzahlw.w=laengel.l/52
For iw.w=0 To zeilenanzahlw.w
FileSeek(1,iw.w*52)
wert2s.s=ReadString(1)
datums.s=Left(wert2s.s,10)
terminarts.s=Mid(wert2s.s,11, 15)
names.s=Mid(wert2s.s,26, 25)
AddGadgetItem(lig.l, -1,datums.s+Chr(10)+terminarts.s+Chr(10)+names.s);lig=#Datenausgabe_lig??
Next iw.w
CloseFile(1)
EndIf
EndProcedure
Procedure Open_Datenausgabe()
If OpenWindow(#Datenausgabe, 100, 100, 355, 200, "Datenausgabe", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_TitleBar| #PB_Window_ScreenCentered)
If CreateGadgetList(WindowID(#Datenausgabe))
ListIconGadget(#Datenausgabe_lig, 5, 5, 345, 190, "Datum", 80,#PB_ListIcon_FullRowSelect|#PB_ListIcon_AlwaysShowSelection)
AddGadgetColumn(#Datenausgabe_lig, 1, "Terminart", 90)
AddGadgetColumn(#Datenausgabe_lig, 2, "Name", 150)
EndIf
lig_Fuellen(#Datenausgabe_lig)
EndIf
EndProcedure
Procedure Open_Datenloeschungauswahl()
If OpenWindow(#Datenloeschungauswahl, 100, 100, 355, 275, "Datenlöschung", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_TitleBar| #PB_Window_ScreenCentered)
If CreateGadgetList(WindowID(#Datenloeschungauswahl))
ListIconGadget(#Datenloeschungauswahl_lig, 5, 35, 345, 200, "Datum", 80,#PB_ListIcon_FullRowSelect|#PB_ListIcon_AlwaysShowSelection)
AddGadgetColumn(#Datenloeschungauswahl_lig, 1, "Terminart", 90)
AddGadgetColumn(#Datenloeschungauswahl_lig, 2, "Name", 150)
TextGadget(#Datenloeschungauswahl_lblDatensatz_markieren, 5, 10, 250, 20, "Bitte den Datensatz markieren")
ButtonGadget(#Datenloeschungauswahl_cmdWeiter, 5, 245, 70, 20, "Weiter")
EndIf
lig_Fuellen(#Datenloeschungauswahl_lig)
EndIf
EndProcedure
Procedure Open_Datenloeschungbestaetigung(wertw.w)
If OpenWindow(#Datenloeschungbestaetigung,216,0,380,250,"Datenlöschungsfenster",#PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_TitleBar| #PB_Window_ScreenCentered )
If CreateGadgetList(WindowID(#Datenloeschungbestaetigung))
TextGadget(#Datenloeschungbestaetigung_lblDatenloeschungsfenster, 20, 20, 150, 20, "Datenlöschungsfenster")
TextGadget(#Datenloeschungbestaetigung_lblDatum, 20, 60, 40, 20, "Datum")
StringGadget(#Datenloeschungbestaetigung_txtDatum, 80, 60, 60, 20, "")
TextGadget(#Datenloeschungbestaetigung_lblTerminart, 20, 100, 50, 20, "Terminart")
StringGadget(#Datenloeschungbestaetigung_txtTerminart, 80, 100, 100, 20, "")
TextGadget(#Datenloeschungbestaetigung_lblName, 20, 140, 60, 20, "Name")
StringGadget(#Datenloeschungbestaetigung_txtName, 80, 140, 150, 20, "")
ButtonGadget(#Datenloeschungbestaetigung_cmdDaten_loeschen, 20, 180, 230, 30, "Daten löschen ( sind sie sich wirklich sicher?)")
ButtonGadget(#Datenloeschungbestaetigung_cmdAbbrechen, 270, 180, 100, 30, "Abbrechen")
EndIf
If ReadFile(1,"termin.dat")
FileSeek(1,wertw.w*52)
wert2s.s=ReadString(1)
datums.s=Left(wert2s.s,10)
terminarts.s=Mid(wert2s.s,11, 15)
names.s=Mid(wert2s.s,26, 25)
SetGadgetText(#Datenloeschungbestaetigung_txtDatum, datums.s)
SetGadgetText(#Datenloeschungbestaetigung_txtTerminart, terminarts.s)
SetGadgetText(#Datenloeschungbestaetigung_txtName, names.s)
CloseFile(1)
EndIf
EndIf
EndProcedure
Procedure Open_Datenaenderungauswahl()
If OpenWindow(#Datenaenderungauswahl, 100, 100, 355, 275, "Datenänderung", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_TitleBar| #PB_Window_ScreenCentered)
If CreateGadgetList(WindowID(#Datenaenderungauswahl))
ListIconGadget(#Datenaenderungauswahl_lig, 5, 35, 345, 200, "Datum", 80,#PB_ListIcon_FullRowSelect|#PB_ListIcon_AlwaysShowSelection)
AddGadgetColumn(#Datenaenderungauswahl_lig, 1, "Terminart", 90)
AddGadgetColumn(#Datenaenderungauswahl_lig, 2, "Name", 150)
TextGadget(#Datenaenderungauswahl_lblDatensatz_markieren, 5, 10, 250, 20, "Bitte den Datensatz markieren")
ButtonGadget(#Datenaenderungauswahl_cmdWeiter, 5, 245, 70, 20, "Weiter")
EndIf
lig_Fuellen(#Datenaenderungauswahl_lig)
EndIf
EndProcedure
Procedure Open_Datenaenderungbestaetigung(wertw.w)
If OpenWindow(#Datenaenderungbestaetigung,216,0,500,300,"Datenänderungsfenster",#PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_TitleBar| #PB_Window_ScreenCentered )
If CreateGadgetList(WindowID(#Datenaenderungbestaetigung))
TextGadget(#Datenaenderungbestaetigung_lblDatenaenderungsfenster, 20, 20, 150, 20, "Datenänderungsfenster")
TextGadget(#Datenaenderungbestaetigung_lblDatum, 20, 60, 40, 20, "Datum")
StringGadget(#Datenaenderungbestaetigung_txtDatum, 80, 60, 60, 20, "")
TextGadget(#Datenaenderungbestaetigung_lblTerminart, 20, 100, 50, 20, "Terminart")
StringGadget(#Datenaenderungbestaetigung_txtTerminart, 80, 100, 100, 20, "")
TextGadget(#Datenaenderungbestaetigung_lblName, 20, 140, 60, 20, "Name")
StringGadget(#Datenaenderungbestaetigung_txtName, 80, 140, 150, 20, "")
ButtonGadget(#Datenaenderungbestaetigung_cmdDaten_abspeichern, 20, 200, 160, 30, "Geänderte Daten abspeichern")
ButtonGadget(#Datenaenderungbestaetigung_cmdAbrechen, 200, 200, 100, 30, "Abrechen")
TextGadget(#Datenaenderungbestaetigung_lbl10_Zeichen, 150, 60, 380, 20, "Nur die ersten 10 Zeichen werden übernommen")
TextGadget(#Datenaenderungbestaetigung_lbl15_Zeichen, 190, 100, 380, 20, "Nur die ersten 15 Zeichen werden übernommen")
TextGadget(#Datenaenderungbestaetigung_lbl25_Zeichen, 240, 140, 380, 20, "Nur die ersten 25 Zeichen werden übernommen")
EndIf
If ReadFile(1,"termin.dat")
FileSeek(1,wertw.w*52)
wert2s.s=ReadString(1)
datums.s=Left(wert2s.s,10)
terminarts.s=Mid(wert2s.s,11, 15)
names.s=Mid(wert2s.s,26, 25)
SetGadgetText(#Datenaenderungbestaetigung_txtDatum, datums.s)
SetGadgetText(#Datenaenderungbestaetigung_txtTerminart, terminarts.s)
SetGadgetText(#Datenaenderungbestaetigung_txtName, names.s)
CloseFile(1)
EndIf
EndIf
EndProcedure
Procedure Terminausgabe_lig_Fuellen(lig.l) ;lig=#Terminausgabe_lig??
If ReadFile(1,"termin.dat")
laengel.l= Lof(1)
zeilenanzahlw.w=laengel.l/52
tags.s=FormatDate("%dd",Date())
monats.s=FormatDate("%mm",Date())
jahrs.s=FormatDate("%yyyy",Date())
tagl.l= Val(tags.s)
For iw.w=0 To zeilenanzahlw.w
FileSeek(1,iw.w*52)
wert2s.s=ReadString(1)
datums.s=Left(wert2s.s,10)
terminarts.s=Mid(wert2s.s,11, 15)
names.s=Mid(wert2s.s,26, 25)
tagdateis.s=Left(datums.s,2)
monatdateis.s=Mid(datums.s,4,2)
tagdateil.l= Val(tagdateis.s)
If monatdateis.s=monats.s
If tagdateil.l+1=tagl.l Or tagdateil.l=tagl.l Or tagdateil.l-1=tagl.l Or tagdateil.l-2=tagl.l
AddGadgetItem(lig.l, -1,datums.s+Chr(10)+terminarts.s+Chr(10)+names.s)
EndIf
EndIf
Next iw.w
CloseFile(1)
EndIf
EndProcedure
Procedure Open_Terminausgabe()
datumheutes.s=FormatDate("%dd.%mm.%yyyy", Date())
If OpenWindow(#Terminausgabe, 100, 100, 550, 200, "Termine - für gestern, heute ("+datumheutes.s+"), morgen und übermorgen", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget |#PB_Window_TitleBar| #PB_Window_ScreenCentered)
If CreateGadgetList(WindowID(#Terminausgabe))
ListIconGadget(#Terminausgabe_lig, 5, 5, 540, 190, "Datum", 70,#PB_ListIcon_FullRowSelect|#PB_ListIcon_AlwaysShowSelection)
AddGadgetColumn(#Terminausgabe_lig, 1, "Terminart", 140)
AddGadgetColumn(#Terminausgabe_lig, 2, "Name", 320)
EndIf
Terminausgabe_lig_Fuellen(#Terminausgabe_lig)
EndIf
EndProcedure
Procedure MainLoop()
Protected Quit.l
Protected EventID.l
Protected EventGadget.l
Protected EventWindow.l
Open_Hauptfenster()
Repeat
EventID = WaitWindowEvent()
EventGadget = EventGadget()
EventWindow = EventWindow()
Select EventID
Case #PB_Event_CloseWindow
Select EventWindow
Case #Hauptfenster : Quit = 1
Case #Termineingabefenster : CloseWindow(#Termineingabefenster):HideWindow(#Hauptfenster, 0)
Case #Datenausgabe : CloseWindow(#Datenausgabe):HideWindow(#Hauptfenster, 0)
Case #Datenloeschungauswahl : CloseWindow(#Datenloeschungauswahl):HideWindow(#Hauptfenster, 0)
Case #Datenloeschungbestaetigung : CloseWindow(#Datenloeschungbestaetigung):HideWindow(#Hauptfenster, 0)
Case #Datenaenderungauswahl : CloseWindow(#Datenaenderungauswahl):HideWindow(#Hauptfenster, 0)
Case #Datenaenderungbestaetigung : CloseWindow(#Datenaenderungbestaetigung):HideWindow(#Hauptfenster, 0)
Case #Terminausgabe : CloseWindow(#Terminausgabe):HideWindow(#Hauptfenster, 0)
EndSelect
Case #PB_Event_Gadget
Select EventWindow
Case #Hauptfenster
Select EventGadget
Case #Hauptfenster_cmdTermineingabe : Open_Termineingabefenster():HideWindow(#Hauptfenster, 1)
Case #Hauptfenster_cmdDatenausgabe : Open_Datenausgabe():HideWindow(#Hauptfenster, 1)
Case #Hauptfenster_cmdDatenloeschung : Open_Datenloeschungauswahl():HideWindow(#Hauptfenster, 1)
Case #Hauptfenster_cmdDatenaenderung : Open_Datenaenderungauswahl():HideWindow(#Hauptfenster, 1)
Case #Hauptfenster_cmdTerminausgabe : Open_Terminausgabe():HideWindow(#Hauptfenster, 1)
Case #Hauptfenster_cmdBeenden : Quit = 1
EndSelect
Case #Termineingabefenster
Select EventGadget
Case #Termineingabefenster_cmdHinzufuegen
text1s.s = GetGadgetText(#Termineingabefenster_txtDatum)
ergebnis1s.s = LSet(text1s.s, 10)
text2s.s = GetGadgetText(#Termineingabefenster_txtTerminart)
ergebnis2s.s = LSet(text2s.s, 15)
text3s.s = GetGadgetText(#Termineingabefenster_txtName)
ergebnis3s.s = LSet(text3s.s, 25)
textgesamts.s = ergebnis1s.s+ergebnis2s.s+ergebnis3s.s
If OpenFile(1,"termin.dat")
laengel.l= Lof(1)
FileSeek(1,laengel.l)
WriteStringN(1,textgesamts.s)
CloseFile(1)
EndIf
SetGadgetText(#Termineingabefenster_txtDatum, "")
SetGadgetText(#Termineingabefenster_txtTerminart, "")
SetGadgetText(#Termineingabefenster_txtName, "")
Case #Termineingabefenster_cmdBeenden
CloseWindow(#Termineingabefenster)
HideWindow(#Hauptfenster, 0)
EndSelect
Case #Datenloeschungauswahl
Select EventGadget
Case #Datenloeschungauswahl_cmdWeiter
wertw.w = GetGadgetState(#Datenloeschungauswahl_lig)
ergebniss.s = Str(wertw.w)
CloseWindow(#Datenloeschungauswahl)
Open_Datenloeschungbestaetigung(wertw.w)
EndSelect
Case #Datenloeschungbestaetigung
Select EventGadget
Case #Datenloeschungbestaetigung_cmdDaten_loeschen
loeschs.s = LSet("-", 50,"-")
If OpenFile(1,"termin.dat")
FileSeek(1,wertw.w*52)
WriteStringN(1,loeschs.s)
CloseFile(1)
EndIf
If OpenFile(2,"terminkopie.dat")
EndIf
If ReadFile(1,"termin.dat")
laengefile1l.l= Lof(1)
zeilenanzahlfile1w.w=laengefile1l.l/52
For iw.w=0 To zeilenanzahlfile1w.w-1 ;wegen Löschzeile = 1 Zeile weniger
FileSeek(1,iw.w*52)
textgesamtfile1s.s=ReadString(1)
If textgesamtfile1s.s<>loeschs.s
laengefile2l.l= Lof(2)
FileSeek(1,laengefile2l.l)
WriteStringN(2,textgesamtfile1s.s)
EndIf
Next iw.w
CloseFile(1)
CloseFile(2)
EndIf
DeleteFile("termin.dat")
RenameFile("terminkopie.dat", "termin.dat")
DeleteFile("terminkopie.dat")
CloseWindow(#Datenloeschungbestaetigung)
HideWindow(#Hauptfenster, 0)
Case #Datenloeschungbestaetigung_cmdAbbrechen
CloseWindow(#Datenloeschungbestaetigung)
HideWindow(#Hauptfenster, 0)
EndSelect
Case #Datenaenderungauswahl
Select EventGadget
Case #Datenaenderungauswahl_cmdWeiter
wertw.w = GetGadgetState(#Datenaenderungauswahl_lig)
ergebniss.s = Str(wertw.w)
CloseWindow(#Datenaenderungauswahl)
Open_Datenaenderungbestaetigung(wertw.w)
EndSelect
Case #Datenaenderungbestaetigung
Select EventGadget
Case #Datenaenderungbestaetigung_cmdDaten_abspeichern
text1s.s = GetGadgetText(#Datenaenderungbestaetigung_txtDatum)
ergebnis1s.s = LSet(text1s.s, 10)
text2s.s = GetGadgetText(#Datenaenderungbestaetigung_txtTerminart)
ergebnis2s.s = LSet(text2s.s, 15)
text3s.s = GetGadgetText(#Datenaenderungbestaetigung_txtName)
ergebnis3s.s = LSet(text3s.s, 25)
textgesamts.s = ergebnis1s.s+ergebnis2s.s+ergebnis3s.s
If OpenFile(1,"termin.dat")
FileSeek(1,wertw.w*52)
WriteStringN(1,textgesamts.s)
CloseFile(1)
EndIf
CloseWindow(#Datenaenderungbestaetigung)
HideWindow(#Hauptfenster, 0)
Case #Datenaenderungbestaetigung_cmdAbrechen
CloseWindow(#Datenaenderungbestaetigung)
HideWindow(#Hauptfenster, 0)
EndSelect
EndSelect
EndSelect
Until Quit=1
EndProcedure
MainLoop()
End
Michael
PB 4.02 (wegen Disphelper), 5.72 (Windows) (x64)
- 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
Re: Daten speichern und lesen?
Das Beispiel von HemSA ist doch etwas komplex
Hier mal etwas einfacheres zum ausbauen:

Hier mal etwas einfacheres zum ausbauen:
Code: Alles auswählen
EnableExplicit
Structure Thor
Name.s
PL.s
PP.i
PM.i
TP.i
TM.i
EndStructure
Global NewList TorListe.Thor()
Procedure ReadCSV(File.s)
Protected Datensatz.s, FF = ReadFile(#PB_Any, File)
If FF
ClearList(TorListe())
ReadString(FF) ; Spaltenbezeichner ignorieren
While Not Eof(FF)
Datensatz = ReadString(FF)
If Datensatz
AddElement(TorListe())
TorListe()\Name = StringField(Datensatz, 1, ";")
TorListe()\PL = StringField(Datensatz, 2, ";")
TorListe()\PP = Val(StringField(Datensatz, 3, ";")
; usw.
; ...
EndIf
Wend
CloseFile(FF)
EndIf
EndProcedure
Procedure WriteCSV(File.s)
Protected Datensatz.s, FF = CreateFile(#PB_Any, File)
If File
WriteStringN(FF, "Name;Platz;Punkteplus;Punkteminus;Toreplus;Toreminus") ; Spaltenbezeichner, immer erste Zeile
ForEach TorListe()
Datensatz = TorListe()\Name + ";"
Datensatz + TorListe()\PL + ";"
Datensatz + Str(TorListe()\PP) + ";"
Datensatz + Str(TorListe()\PM) + ";"
Datensatz + Str(TorListe()\TP) + ";"
Datensatz + Str(TorListe()\TM)
WriteStringN(FF, Datensatz)
Next
CloseFile(FF)
EndIf
EndProcedure
; demo-daten
AddElement(TorListe())
TorListe()\Name = "Borussia Schiessmich"
TorListe()\PL = "Parkstadion"
TorListe()\PP = 2
TorListe()\PM = 0
TorListe()\TP = 3
TorListe()\TM = 2
AddElement(TorListe())
TorListe()\Name = "Borussia Kannnichtschiessen"
TorListe()\PL = "Skistadion"
TorListe()\PP = 0
TorListe()\PM = 4
TorListe()\TP = 0
TorListe()\TM = 5
WriteCSV(GetTemporaryDirectory() + "torliste.csv")
ReadCSV(GetTemporaryDirectory() + "torliste.csv")
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: 2
- Registriert: 28.06.2010 20:26
Re: Daten speichern und lesen?
Hallo,
vielen Dank für Eure Tips.
Die haben mir weitergeholfen.
Gruß
Eberhard
vielen Dank für Eure Tips.
Die haben mir weitergeholfen.
Gruß
Eberhard