Autor: Heinz Brill (---.dip0.t-ipconnect.de)
Datum: 10.01.18 19:02
Hab mein Progrämmchen von damals gefunden 
Declare String datei, name, ort, hobbys, Integer nr
Declare Long p1, ende, zeile, lpos, String p2
Declare Handle Fenster, Grid, Edit1, Edit2, Edit3, Edit4, MEdit
Declare Handle Btn1, Btn2, Btn3, Btn4, Btn5, Btn6
Declare String spalten, E1, E2, E3, E4, ME
spalten = "Name;0;120;Nummer;0;80;Ort;0;120;Hobbys;0;240"
name = " "
ende = 0
datei = $AppDataDir +"Hobbys.ini"
UserMessages $10
Fenster = Create("Dialog", %DeskTop, "Adressbuch in Gridbox", 100, 100, 640, 500)
Create("Text", Fenster, "Name :", 10, 10, 70, 25)
Create("Text", Fenster, "Nummer :", 10, 40, 70, 25)
Create("Text", Fenster, "Ort :", 10, 70, 70, 25)
Create("Text", Fenster, "Hobbys :", 10, 100,70, 25)
Edit1 = Create("Edit", Fenster, "", 80, 10, 240, 25)
Edit2 = Create("Edit", Fenster, "", 80, 40, 60, 25)
Edit3 = Create("Edit", Fenster, "", 80, 70, 240,25)
Edit4 = Create("Edit", Fenster, "", 80,100, 360,25)
Btn1 = Create("Button", Fenster, "Neuer DS", 520, 10, 80, 25)
Btn2 = Create("Button", Fenster, "Laden", 520, 40, 80, 25)
Btn3 = Create("Button", Fenster, "Drucken", 520, 70, 80, 25)
Btn4 = Create("Button", Fenster, "Löschen", 520,100, 80, 25)
Btn5 = Create("Button", Fenster, "Update DS", 520,130, 80, 25)
Btn6 = Create("Button", Fenster, "Ende", 520,160, 80, 25)
MEdit = Create("MultiEdit", Fenster, "Bemerkung", 10, 150, 420, 80)
Grid = Create("Gridbox",Fenster, spalten, 0, 10, 250, 560, 200)
WhileNot ende
WaitInput
If Clicked(Btn1)
Eingabe()
ElseIf Clicked(Btn2)
Ausgabe()
ElseIf Clicked(Btn3)
Drucken()
ElseIf Clicked(Btn4)
If GetState(Grid, zeile)
LoescheSatz(zeile + 1)
Else
MessageBox("Kein Datensatz markiert !", "Fehler !", 0)
EndIf
ElseIf Clicked(Btn5)
If GetState(Grid, zeile)
E1 = GetText$(Edit1)
E2 = GetText$(Edit2)
E3 = GetText$(Edit3)
E4 = GetText$(Edit4)
ME = Translate$(GetText$(MEdit), Chr$(13) + Chr$(10), "|")
UpdateSatz(zeile + 1)
Else
MessageBox("Kein Datensatz markiert !", "Fehler !", 0)
EndIf
ElseIf Clicked(Btn6)
ende = 1
EndIf
If @Clicked(Grid) ' Eintrag in der Gridbox geklickt ?
zeile = GetCurSel(Grid)
If GetState(Grid, zeile)
SetText Edit1, GetText$(Grid, zeile, 0)
SetText Edit2, GetText$(Grid, zeile, 1)
SetText Edit3, GetText$(Grid, zeile, 2)
SetText Edit4, GetText$(Grid, zeile, 3)
SetText MEdit, Translate$(ReadIni$(datei, zeile + 1, "Text1"), "|", Chr$(13) + Chr$(10))
EndIf
EndIf
Case %UMessage = $10 : ende = 1
EndWhile
Proc Eingabe
Declare Long pos
E1 = GetText$(Edit1)
E2 = GetText$(Edit2)
E3 = GetText$(Edit3)
E4 = GetText$(Edit4)
ME = Translate$(GetText$(MEdit), Chr$(13) + Chr$(10), "|")
If E1 <> ""
pos = NeuerDatensatz(E1, E2, E3, E4, ME)
Ausgabe()
SelectString(Grid, -1, E1)
Else
MessageBox("Kein Name eingegeben !", "Fehler !", 0)
EndIf
EndProc
Proc Ausgabe
Declare Int x, y
Declare String ds, l
x = 5
y = 3
If FileExists(datei)
p2 = ReadIni$(datei, "Datensätze", "Anzahl")
p1 = Val(p2)
ClearList
If p1 > 0
WhileLoop 1, p1
E1 = ReadIni$(datei, Str$(&LOOP), "Name")
E2 = ReadIni$(datei, Str$(&LOOP), "Nummer")
E3 = ReadIni$(datei, Str$(&LOOP), "Ort")
E4 = ReadIni$(datei, Str$(&LOOP), "Hobbys")
l = ReadIni$(datei, Str$(&LOOP), "Lösch")
If l = "N"
AddString(0, E1 + "|" + E2 + "|" + E3 + "|" + E4)
EndIf
EndWhile
ClearList Grid
Move("ListToHandle", Grid)
Else
MessageBox("Keine Sätze vorhanden !", "Hinweis !", 0)
EndIf
Else
MessageBox(datei + " nicht gefunden !\nNeue Datei ohne\nEinträge geschrieben !", "Fehler !", 0)
WriteIni datei, "Datensätze", "Anzahl", "0"
EndIf
EndProc
Proc NeuerDatensatz
Parameters String name, Long nr, String ort, hobbys, text
Declare String anzahl, loesch, Long az, a
If FileExists(datei)
anzahl = ReadIni$(datei, "Datensätze", "Anzahl")
az = Val(anzahl)
a = 0
If az > 1
WhileLoop 1, az
loesch = ReadIni$(datei, Str$(&LOOP), "Lösch")
If loesch = "*"
a = &LOOP
Break
EndIf
EndWhile
EndIf
If a > 0
az = a
Else
Inc az
WriteIni datei, "Datensätze", "Anzahl", Str$(az)
EndIf
WriteIni datei, Str$(az), "Name", name
WriteIni datei, Str$(az), "Nummer", Str$(nr)
WriteIni datei, Str$(az), "Ort", ort
WriteIni datei, Str$(az), "Hobbys", hobbys
WriteIni datei, Str$(az), "Lösch", "N"
WriteIni datei, Str$(az), "Text1", text
Return az
EndIf
EndProc
Proc Drucken
Declare Long a, y, x1, x2, x3, x4
Declare String zeile
x1 = 50
x2 = 210
x3 = 270
x4 = 420
y = 24
ClearList
Move("HandleToList", Grid)
a = GetCount(0)
If a > 1
StartPrint "*MeinDokument"
If %Printing
DrawText x3, y , "Datensätze", 6
Inc y, 24
DrawText x1, y, "NAME", 0 : DrawText x2, y, "NR", 0
DrawText x3, y, "WOHNORT", 0 : DrawText x4, y, "HOBBYS", 0
Inc y, 24
DrawText x1, y, MkStr$("-", 450)
Inc y, 24
WhileLoop 0, a - 1
zeile = GetString$(0, &LOOP)
DrawText x1, y, SubStr$(zeile, 1, "|") : DrawText x2, y, SubStr$(zeile, 2, "|")
DrawText x3, y, SubStr$(zeile, 3, "|") : DrawText x4, y, SubStr$(zeile, 4, "|")
Inc y, 24
EndWhile
EndPrint
EndIf
EndIf
EndProc
Proc LoescheSatz
Parameters Long lp
WriteIni datei, Str$(lp), "Lösch", "*"
Ausgabe()
EndIf
EndProc
Proc UpdateSatz
Parameters Long lp
WriteIni datei, Str$(lp), "Name", E1
WriteIni datei, Str$(lp), "Nummer", E2
WriteIni datei, Str$(lp), "Ort", E3
WriteIni datei, Str$(lp), "Hobbys", E4
WriteIni datei, Str$(lp), "Lösch", "N"
WriteIni datei, Str$(lp), "Text1", ME
Ausgabe()
EndProc
End
H.Brill
XProfan X4 + FreeProfan
|
|