Suche Beispiel für Adressverwaltung

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
otvzo
Beiträge: 7
Registriert: 11.02.2009 18:16
Wohnort: Buchholz / Nordheide

Suche Beispiel für Adressverwaltung

Beitrag von otvzo »

Hallo Alle, erst einmal Guten Tag. Ich bin neu hier, bin vor ein paar Tagen über PureBasic gestolpert, habe mir die Demo runtergeladen und installiert und auch schon in den mitgelieferten Beispielen gelesen.

Vor 20 Jahren habe ich eine komplexe Anwendung zur Warenwirtschaft in GW-Basic erstellt, die heute noch produktiv genutzt wird! Läuft fehlerfrei.

Jetzt wollte ich die Anwendung auf Windows umstellen und hatte mir schon Visual Basic gekauft... Ist mir zu unhandlich und die Programme werden Monster.

PureBasic scheint mir sehr geeignet aber der Lernprozess ist eben da.
Um diesen zu beschleunigen, würde es mir helfen, wenn jemand mir einen Souce-code einer Dateiverwaltung (Muster) mit direkter Satzverarbeitung und Rollfenster zur Suche/Aufruf überlassen könnte - zum einlesen (bevor ich die Vollversion kaufe).

Sage schon mal danke :allright:

Gruß Niels
aus Pure(r) Lust am Programmieren ;-)
Andesdaf
Moderator
Beiträge: 2673
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Beitrag von Andesdaf »

du meinst also mit einlesen/speichern und Suche?
Win11 x64 | PB 6.20
Benutzeravatar
otvzo
Beiträge: 7
Registriert: 11.02.2009 18:16
Wohnort: Buchholz / Nordheide

Beitrag von otvzo »

ja, eingeben über Bildschirm, speichern, wieder aufrufen, anzeigen und option zum Ändern... Was man so für eine Dateiverwaltung braucht.

Drei vier Felder als Muster würden ja reichen :)
aus Pure(r) Lust am Programmieren ;-)
Andesdaf
Moderator
Beiträge: 2673
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Beitrag von Andesdaf »

sowas?

Code: Alles auswählen

If OpenWindow(0, 0, 0, 230, 120, "Dateiverwaltung", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)

  ButtonGadget(1,5,5,80,20,"Create")
  ButtonGadget(2,5,30,80,20,"Read")
  ButtonGadget(5,5,55,80,20,"Ändern")
  
  StringGadget(3,5,80,100,25,"bla")
  

   Repeat
     Event = WaitWindowEvent()
     
     Select Event
     
       Case #PB_Event_Gadget
         Select EventGadget()
           Case 1
             
             If CreateFile(4,GetHomeDirectory()+"dateiverwaltung.txt")
               
               WriteString(4,"Test von einem Dateiprogramm")
               
               CloseFile(4)
               MessageRequester("Info","Datei erstellt mit dem Inhalt:"+Chr(13)+"Test von einem Dateiprogramm")
             EndIf
             
           Case 2
             If OpenFile(4,GetHomeDirectory()+"dateiverwaltung.txt")
               Zeile.s = ReadString(4)
               SetGadgetText(3,Zeile)
               MessageRequester("Info","Du kannst jetzt den Inhalt ändern")
               CloseFile(4)
             EndIf
             
           Case 5
             If CreateFile(4,GetHomeDirectory()+"dateiverwaltung.txt")
               WriteString(4,GetGadgetText(3))
             EndIf
             MessageRequester("Info","Datei geändert.")
             CloseFile(4)
         EndSelect
       
     
     EndSelect
   Until Event = #PB_Event_CloseWindow
 EndIf
Beim Ändern überschreibe ich die Datei. Da solltest du vorsichtig sein.
Win11 x64 | PB 6.20
Andesdaf
Moderator
Beiträge: 2673
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Beitrag von Andesdaf »

ist noch ein sehr einfaches Beispiel aber ich denke du kannst das dann alleine
vergrößern. :)
Win11 x64 | PB 6.20
Benutzeravatar
otvzo
Beiträge: 7
Registriert: 11.02.2009 18:16
Wohnort: Buchholz / Nordheide

Beitrag von otvzo »

Danke Andesdaf, das schaue ich mir mal näher an und probiere ein wenig rum.
Sieht aber ganz gut aus.
Ich werde dann mal ein Feedback geben.
aus Pure(r) Lust am Programmieren ;-)
Andesdaf
Moderator
Beiträge: 2673
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Beitrag von Andesdaf »

ist jetzt auch nur ganz grob zusammengepflückt.

Wenn du dein Projekt größer machen willst solltest du die Nummern für
Gadgets und die Files in Konstanten packen und oben eine Enumeration
einfügen.

War nur so als erste Möglichkeit gedacht.
Win11 x64 | PB 6.20
HemSA
Beiträge: 221
Registriert: 16.10.2005 13:59
Wohnort: Manisa / Türkei
Kontaktdaten:

Beitrag von HemSA »

Hallo Niels,
ich habe mal eine Datenbank auf Textdateibasis mal erstellt. Man kann Daten eingeben, löschen, gesamte Datei anzeigen, Datensatz ändern, nach einem Begriff in der Datenbank suchen und einen Datensatz nach Termin anzeigen ( hatte da die Termine nach dem heutigen Datum anzeigen lassen - Geburtstag etc. ).
Die Ausgaben sind auf türkisch, aber die Variablen haben meistens die Deutsche Version, so das es nicht schwierig sein sollte es nach deinen Mustern anzupassen. Falls du denoch Fragen haben solltest, melde dich einfach nochmal.

Code: Alles auswählen

Enumeration ; Windows 
  #Hauptfenster 
  #Termineingabefenster
  #Datenausgabe
  #Datenloeschungauswahl
  #Datenloeschungbestaetigung
  #Datenaenderungauswahl
  #Datenaenderungbestaetigung
  #Terminausgabe
  #Datensuchfeld
  #Datensuchausgabe
EndEnumeration 

Enumeration ; Gadgets 
  
  ; Hauptfenster 
  #Hauptfenster_txtInfo1 
  #Hauptfenster_txtInfo2
  #Hauptfenster_txtInfo3
  #Hauptfenster_butTermineingabe 
  #Hauptfenster_butDatenausgabe 
  #Hauptfenster_butDatenloeschung 
  #Hauptfenster_butDatenaenderung 
  #Hauptfenster_butTerminausgabe 
  #Hauptfenster_butDatensuche 
  #Hauptfenster_butBeenden 
  
  ; Termineingabefenster 
  #Termineingabefenster_txtInfo 
  #Termineingabefenster_txtAdi 
  #Termineingabefenster_strAdi 
  #Termineingabefenster_txtAdi2
  #Termineingabefenster_txtSoyadi 
  #Termineingabefenster_strSoyadi 
  #Termineingabefenster_txtSoyadi2
  #Termineingabefenster_txtTermin 
  #Termineingabefenster_strTermin 
  #Termineingabefenster_txtTermin2
  #Termineingabefenster_txtEmail 
  #Termineingabefenster_strEmail 
  #Termineingabefenster_txtEmail2
  #Termineingabefenster_txtCeptel 
  #Termineingabefenster_strCeptel 
  #Termineingabefenster_txtCeptel2
  #Termineingabefenster_txtEvtel 
  #Termineingabefenster_strEvtel 
  #Termineingabefenster_txtEvtel2
  #Termineingabefenster_txtDigerbilgi 
  #Termineingabefenster_strDigerbilgi 
  #Termineingabefenster_txtDigerbilgi2 
  #Termineingabefenster_butHinzufuegen 
  #Termineingabefenster_butBeenden 
  
  ;Datenausgabe
  #Datenausgabe_lig
  #Datenausgabe_butBeenden 
  
  ;Datenloeschungauswahl
  #Datenloeschungauswahl_lig
  #Datenloeschungauswahl_txtDatensatz_markieren
  #Datenloeschungauswahl_butWeiter
  #Datenloeschungauswahl_butBeenden
  
  ;Datenloeschungbestaetigung
  #Datenloeschungbestaetigung_txtInfo
  #Datenloeschungbestaetigung_txtTermin
  #Datenloeschungbestaetigung_strTermin
  #Datenloeschungbestaetigung_txtAdi
  #Datenloeschungbestaetigung_strAdi
  #Datenloeschungbestaetigung_txtSoyadi
  #Datenloeschungbestaetigung_strSoyadi
  #Datenloeschungbestaetigung_butDaten_loeschen
  #Datenloeschungbestaetigung_butAbbrechen
  
  ;Datenaenderungauswahl
  #Datenaenderungauswahl_lig
  #Datenaenderungauswahl_txtDatensatz_markieren
  #Datenaenderungauswahl_butWeiter
  #Datenaenderungauswahl_butBeenden
   
  ;Datenaenderungbestaetigung
  #Datenaenderungbestaetigung_txtInfo
  #Datenaenderungbestaetigung_txtAdi
  #Datenaenderungbestaetigung_strAdi
  #Datenaenderungbestaetigung_txtAdi2
  #Datenaenderungbestaetigung_txtSoyadi
  #Datenaenderungbestaetigung_strSoyadi
  #Datenaenderungbestaetigung_txtSoyadi2
  #Datenaenderungbestaetigung_txtTermin
  #Datenaenderungbestaetigung_strTermin
  #Datenaenderungbestaetigung_txtTermin2
  #Datenaenderungbestaetigung_txtEmail 
  #Datenaenderungbestaetigung_strEmail 
  #Datenaenderungbestaetigung_txtEmail2
  #Datenaenderungbestaetigung_txtCeptel 
  #Datenaenderungbestaetigung_strCeptel 
  #Datenaenderungbestaetigung_txtCeptel2
  #Datenaenderungbestaetigung_txtEvtel 
  #Datenaenderungbestaetigung_strEvtel 
  #Datenaenderungbestaetigung_txtEvtel2
  #Datenaenderungbestaetigung_txtDigerbilgi 
  #Datenaenderungbestaetigung_strDigerbilgi 
  #Datenaenderungbestaetigung_txtDigerbilgi2 
  #Datenaenderungbestaetigung_butDaten_abspeichern
  #Datenaenderungbestaetigung_butBeenden
   
  ;Terminausgabe
  #Terminausgabe_lig
  #Terminausgabe_butBeenden
  
  ;Datensuchfeld 
  #Datensuchfeld_txtInfo 
  #Datensuchfeld_strArama                          
  #Datensuchfeld_butWeiter
  #Datensuchfeld_butBeenden
  
  ;Datensuchausgabe
  #Datensuchausgabe_txtSuch1
  #Datensuchausgabe_txtSuch2
  #Datensuchausgabe_lig
  #Datensuchausgabe_butBeenden
  
EndEnumeration 



Procedure Open_Hauptfenster() 
  If OpenWindow(#Hauptfenster,216,0,340,310,"Veri Tabanı - Sürüm 1",#PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_TitleBar| #PB_Window_ScreenCentered) 
    If CreateGadgetList(WindowID(#Hauptfenster)) 
      TextGadget  (#Hauptfenster_txtInfo1, 120, 20, 100, 30, "Lütfen menü seçin") 
      ButtonGadget(#Hauptfenster_butTermineingabe, 10, 50, 150, 35, "Yeni kayıt yaratma") 
      ButtonGadget(#Hauptfenster_butDatenausgabe, 180, 50, 150, 35, "Kayıt gösterme") 
      ButtonGadget(#Hauptfenster_butDatenloeschung, 10, 100, 150, 35, "Kayıt silme") 
      ButtonGadget(#Hauptfenster_butDatenaenderung, 180, 100, 150, 35, "Kayıt güncelleme") 
      ButtonGadget(#Hauptfenster_butTerminausgabe, 10, 150, 150, 35, "Tarih gösterme") 
      ButtonGadget(#Hauptfenster_butDatensuche, 180, 150, 150, 35, "Kayıt arama")
      ButtonGadget(#Hauptfenster_butBeenden, 10, 200, 320, 35, "Kapat") 
      TextGadget  (#Hauptfenster_txtInfo2, 200, 250, 100, 20, "") 
      TextGadget  (#Hauptfenster_txtInfo3, 200, 270, 170, 40, "") 
   EndIf 
  EndIf 
EndProcedure  

Procedure Open_Termineingabefenster() 
  If OpenWindow(#Termineingabefenster,216,0,680,400,"Yeni kayıt yaratma",#PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered) 
    If CreateGadgetList(WindowID(#Termineingabefenster)) 
      TextGadget  (#Termineingabefenster_txtInfo, 20, 20, 150, 20, "Kayıt yaratma penceresi") 
      TextGadget  (#Termineingabefenster_txtAdi, 20, 60, 80, 20, "Adı")                        
      StringGadget(#Termineingabefenster_strAdi, 110, 60, 340, 20, "")                          
      TextGadget  (#Termineingabefenster_txtAdi2, 460, 60, 90, 20, "En fazla 30 harf") 
      TextGadget  (#Termineingabefenster_txtSoyadi, 20, 100, 80, 20, "Soyadı") 
      StringGadget(#Termineingabefenster_strSoyadi, 110, 100, 340, 20, "") 
      TextGadget  (#Termineingabefenster_txtSoyadi2, 460, 100, 90, 20, "En fazla 30 harf") 
      TextGadget  (#Termineingabefenster_txtTermin, 20, 140, 80, 20, "Tarih") 
      StringGadget(#Termineingabefenster_strTermin, 110, 140, 80, 20, "")      
      TextGadget  (#Termineingabefenster_txtTermin2, 200, 140, 150, 20, "Giriş formatı örn: 05.10.1984") 
      TextGadget  (#Termineingabefenster_txtEmail, 20, 180, 80, 20, "e-mail adresi") 
      StringGadget(#Termineingabefenster_strEmail, 110, 180, 450, 20, "")      
      TextGadget  (#Termineingabefenster_txtEmail2, 570, 180, 90, 20, "En fazla 40 harf") 
      TextGadget  (#Termineingabefenster_txtCeptel, 20, 220, 80, 20, "Cep telefon no") 
      StringGadget(#Termineingabefenster_strCeptel, 110, 220, 340, 20, "")      
      TextGadget  (#Termineingabefenster_txtCeptel2, 460, 220, 90, 20, "En fazla 30 harf") 
      TextGadget  (#Termineingabefenster_txtEvtel, 20, 260, 80, 20, "Ev telefonu") 
      StringGadget(#Termineingabefenster_strEvtel, 110, 260, 340, 20, "")      
      TextGadget  (#Termineingabefenster_txtEvtel2, 460, 260, 90, 20, "En fazla 30 harf") 
      TextGadget  (#Termineingabefenster_txtDigerbilgi, 20, 300, 80, 20, "Diğer bilgileri") 
      StringGadget(#Termineingabefenster_strDigerbilgi, 110, 300, 450, 20, "")      
      TextGadget  (#Termineingabefenster_txtDigerbilgi2, 570, 300, 90, 20, "En fazla 40 harf") 
      ButtonGadget(#Termineingabefenster_butHinzufuegen, 110, 340, 100, 30, "Kayıt yarat") 
      ButtonGadget(#Termineingabefenster_butBeenden, 400, 340, 100, 30, "Kapat") 
    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/212       ;Gesamtlaenge = 210 + 2 für Satzende und Zeilenumbruch
    For iw.w=0 To zeilenanzahlw.w 
      FileSeek(1,iw.w*212)                                        
      zeilensatzs.s=ReadString(1) 
      adis.s=Left(zeilensatzs.s,30) 
      soyadis.s=Mid(zeilensatzs.s,31, 30) 
      termins.s=Mid(zeilensatzs.s,61, 10) 
      emails.s=Mid(zeilensatzs.s,71, 40)
      ceptels.s=Mid(zeilensatzs.s,111, 30)
      evtels.s=Mid(zeilensatzs.s,141, 30)
      digerbilgis.s=Mid(zeilensatzs.s,171, 40)
      AddGadgetItem(lig.l, -1,termins.s+Chr(10)+adis.s+Chr(10)+soyadis.s+Chr(10)+emails.s+Chr(10)+ceptels.s+Chr(10)+evtels.s+Chr(10)+digerbilgis.s)
    Next iw.w 
    CloseFile(1) 
  EndIf  
EndProcedure 
 
Procedure Open_Datenausgabe() 
  If OpenWindow(#Datenausgabe, 100, 100, 1000, 500, "Kayıt gösterme", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_TitleBar| #PB_Window_ScreenCentered) 
    If CreateGadgetList(WindowID(#Datenausgabe)) 
      ListIconGadget(#Datenausgabe_lig, 5, 5, 990, 440, "Tarih", 80,#PB_ListIcon_FullRowSelect|#PB_ListIcon_AlwaysShowSelection) 
      AddGadgetColumn(#Datenausgabe_lig, 1, "Adı", 150) 
      AddGadgetColumn(#Datenausgabe_lig, 2, "Soyadı", 150)
      AddGadgetColumn(#Datenausgabe_lig, 3, "e-mail adresi", 200)
      AddGadgetColumn(#Datenausgabe_lig, 4, "Cep telefonu ", 150)
      AddGadgetColumn(#Datenausgabe_lig, 5, "Ev telefonu", 150)
      AddGadgetColumn(#Datenausgabe_lig, 6, "Diğer bilgileri", 200)
      ButtonGadget(#Datenausgabe_butBeenden, 900, 460, 80, 30, "Kapat")
    EndIf 
    lig_Fuellen(#Datenausgabe_lig) 
  EndIf 
EndProcedure  

Procedure Open_Datenloeschungauswahl() 
  If OpenWindow(#Datenloeschungauswahl, 100, 100, 1000, 500, "Kayıt silinmesi seçimi", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_TitleBar| #PB_Window_ScreenCentered) 
    If CreateGadgetList(WindowID(#Datenloeschungauswahl)) 
      ListIconGadget(#Datenloeschungauswahl_lig, 5, 35, 990, 410, "Tarih", 80,#PB_ListIcon_FullRowSelect|#PB_ListIcon_AlwaysShowSelection) 
      AddGadgetColumn(#Datenloeschungauswahl_lig, 1, "Adı", 150) 
      AddGadgetColumn(#Datenloeschungauswahl_lig, 2, "Soyadı", 150) 
      AddGadgetColumn(#Datenloeschungauswahl_lig, 3, "e-mail adresi", 200)
      AddGadgetColumn(#Datenloeschungauswahl_lig, 4, "Cep telefonu ", 150)
      AddGadgetColumn(#Datenloeschungauswahl_lig, 5, "Ev telefonu", 150)
      AddGadgetColumn(#Datenloeschungauswahl_lig, 6, "Diğer bilgileri", 200)
      TextGadget(#Datenloeschungauswahl_txtDatensatz_markieren, 5,  10, 260, 20, "Lütfen silinecek bir kayıt işaretleyin") 
      ButtonGadget(#Datenloeschungauswahl_butWeiter, 20, 460, 70, 30, "Devam") 
      ButtonGadget(#Datenloeschungauswahl_butBeenden, 900, 460, 80, 30, "Kapat")
    EndIf 
    lig_Fuellen(#Datenloeschungauswahl_lig) 
  EndIf 
EndProcedure 
 
Procedure Open_Datenloeschungbestaetigung(zeilew.w) 
  If OpenWindow(#Datenloeschungbestaetigung,216,0,450,250,"Kayıt silinmesi işlemi",#PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_TitleBar| #PB_Window_ScreenCentered ) 
    If CreateGadgetList(WindowID(#Datenloeschungbestaetigung)) 
      TextGadget(#Datenloeschungbestaetigung_txtInfo, 20, 20, 150, 20, "Kayıt silme penceresi") 
      TextGadget(#Datenloeschungbestaetigung_txtTermin, 20, 60, 40, 20, "Tarih")                        
      StringGadget(#Datenloeschungbestaetigung_strTermin, 80, 60, 80, 20, "")                            
      TextGadget(#Datenloeschungbestaetigung_txtAdi, 20, 100, 50, 20, "Adı") 
      StringGadget(#Datenloeschungbestaetigung_strAdi, 80, 100, 340, 20, "") 
      TextGadget(#Datenloeschungbestaetigung_txtSoyadi, 20, 140, 60, 20, "Soyadı") 
      StringGadget(#Datenloeschungbestaetigung_strSoyadi, 80, 140, 340, 20, "")      
      ButtonGadget(#Datenloeschungbestaetigung_butDaten_loeschen, 20, 180, 280, 30, "Bu kayıt silinecek ( Dikkat! Son kararınız mı?)") 
      ButtonGadget(#Datenloeschungbestaetigung_butAbbrechen, 320, 180, 100, 30, "Kapat") 
    EndIf 
    If ReadFile(1,"termin.dat") 
       FileSeek(1,zeilew.w*212)              ;Gesamtlaenge = 210 + 2 für Satzende und Zeilenumbruch                          
       zeilensatzs.s=ReadString(1) 
       adis.s=Left(zeilensatzs.s,30) 
       soyadis.s=Mid(zeilensatzs.s,31, 30) 
       termins.s=Mid(zeilensatzs.s,61, 10) 
       SetGadgetText(#Datenloeschungbestaetigung_strTermin, termins.s) 
       SetGadgetText(#Datenloeschungbestaetigung_strAdi, adis.s) 
       SetGadgetText(#Datenloeschungbestaetigung_strSoyadi, soyadis.s) 
       CloseFile(1) 
    EndIf 
  EndIf 
EndProcedure

Procedure Open_Datenaenderungauswahl()
  If OpenWindow(#Datenaenderungauswahl, 100, 100, 1000, 500, "Kayıt secimi", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_TitleBar| #PB_Window_ScreenCentered)
    If CreateGadgetList(WindowID(#Datenaenderungauswahl))
      ListIconGadget(#Datenaenderungauswahl_lig, 5, 35, 990, 410, "Tarih", 80,#PB_ListIcon_FullRowSelect|#PB_ListIcon_AlwaysShowSelection)
      AddGadgetColumn(#Datenaenderungauswahl_lig, 1, "Adı", 150)
      AddGadgetColumn(#Datenaenderungauswahl_lig, 2, "Soyadı", 150)
      AddGadgetColumn(#Datenaenderungauswahl_lig, 3, "e-mail adresi", 200)
      AddGadgetColumn(#Datenaenderungauswahl_lig, 4, "Cep telefonu ", 150)
      AddGadgetColumn(#Datenaenderungauswahl_lig, 5, "Ev telefonu", 150)
      AddGadgetColumn(#Datenaenderungauswahl_lig, 6, "Diğer bilgileri", 200)
      TextGadget(#Datenaenderungauswahl_txtDatensatz_markieren, 5,  10, 250, 20, "Lütfen düzeltilecek veri cümle işaretlein")
      ButtonGadget(#Datenaenderungauswahl_butWeiter, 20, 460, 70, 30, "Devam")
      ButtonGadget(#Datenaenderungauswahl_butBeenden, 900, 460, 80, 30, "Kapat")
    EndIf
    lig_Fuellen(#Datenaenderungauswahl_lig) 
  EndIf
EndProcedure

Procedure Open_Datenaenderungbestaetigung(zeilew.w)  
  If OpenWindow(#Datenaenderungbestaetigung,216,0,680,400,"Kayıt güncelleme",#PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_TitleBar| #PB_Window_ScreenCentered )
    If CreateGadgetList(WindowID(#Datenaenderungbestaetigung))
      TextGadget  (#Datenaenderungbestaetigung_txtInfo, 20, 20, 150, 20, "Kayıt güncelleme penceresi") 
      TextGadget  (#Datenaenderungbestaetigung_txtAdi, 20, 60, 80, 20, "Adı")                        
      StringGadget(#Datenaenderungbestaetigung_strAdi, 110, 60, 340, 20, "")                          
      TextGadget  (#Datenaenderungbestaetigung_txtAdi2, 460, 60, 90, 20, "En fazla 30 harf") 
      TextGadget  (#Datenaenderungbestaetigung_txtSoyadi, 20, 100, 80, 20, "Soyadı") 
      StringGadget(#Datenaenderungbestaetigung_strSoyadi, 110, 100, 340, 20, "") 
      TextGadget  (#Datenaenderungbestaetigung_txtSoyadi2, 460, 100, 90, 20, "En fazla 30 harf") 
      TextGadget  (#Datenaenderungbestaetigung_txtTermin, 20, 140, 80, 20, "Tarih") 
      StringGadget(#Datenaenderungbestaetigung_strTermin, 110, 140, 80, 20, "")      
      TextGadget  (#Datenaenderungbestaetigung_txtTermin2, 200, 140, 150, 20, "Giriş formatı örn: 05.10.1984") 
      TextGadget  (#Datenaenderungbestaetigung_txtEmail, 20, 180, 80, 20, "e-mail adresi") 
      StringGadget(#Datenaenderungbestaetigung_strEmail, 110, 180, 450, 20, "")      
      TextGadget  (#Datenaenderungbestaetigung_txtEmail2, 570, 180, 90, 20, "En fazla 40 harf") 
      TextGadget  (#Datenaenderungbestaetigung_txtCeptel, 20, 220, 80, 20, "Cep telefonu ") 
      StringGadget(#Datenaenderungbestaetigung_strCeptel, 110, 220, 340, 20, "")      
      TextGadget  (#Datenaenderungbestaetigung_txtCeptel2, 460, 220, 90, 20, "En fazla 30 harf") 
      TextGadget  (#Datenaenderungbestaetigung_txtEvtel, 20, 260, 80, 20, "Ev telefonu") 
      StringGadget(#Datenaenderungbestaetigung_strEvtel, 110, 260, 340, 20, "")      
      TextGadget  (#Datenaenderungbestaetigung_txtEvtel2, 460, 260, 90, 20, "En fazla 30 harf") 
      TextGadget  (#Datenaenderungbestaetigung_txtDigerbilgi, 20, 300, 80, 20, "Diğer bilgileri") 
      StringGadget(#Datenaenderungbestaetigung_strDigerbilgi, 110, 300, 450, 20, "")      
      TextGadget  (#Datenaenderungbestaetigung_txtDigerbilgi2, 570, 300, 90, 20, "En fazla 40 harf") 
      ButtonGadget(#Datenaenderungbestaetigung_butDaten_abspeichern, 110, 350, 160, 30, "Kayıt güncel")
      ButtonGadget(#Datenaenderungbestaetigung_butBeenden, 400, 350, 100, 30, "Kapat")
    EndIf
    
    If ReadFile(1,"termin.dat") 
       FileSeek(1,zeilew.w*212)              ;Gesamtlaenge = 210 + 2 für Satzende und Zeilenumbruch                  
       zeilensatzs.s=ReadString(1) 
       adis.s=Left(zeilensatzs.s,30) 
       soyadis.s=Mid(zeilensatzs.s,31, 30) 
       termins.s=Mid(zeilensatzs.s,61, 10) 
       emails.s=Mid(zeilensatzs.s,71, 40)
       ceptels.s=Mid(zeilensatzs.s,111, 30)
       evtels.s=Mid(zeilensatzs.s,141, 30)
       digerbilgis.s=Mid(zeilensatzs.s,171, 40)
       SetGadgetText(#Datenaenderungbestaetigung_strAdi, adis.s)     
       SetGadgetText(#Datenaenderungbestaetigung_strSoyadi, soyadis.s) 
       SetGadgetText(#Datenaenderungbestaetigung_strTermin, termins.s) 
       SetGadgetText(#Datenaenderungbestaetigung_strEmail, emails.s)
       SetGadgetText(#Datenaenderungbestaetigung_strCeptel, ceptels.s)
       SetGadgetText(#Datenaenderungbestaetigung_strEvtel, evtels.s)
       SetGadgetText(#Datenaenderungbestaetigung_strDigerbilgi, digerbilgis.s)
    
      CloseFile(1) 
    EndIf
  EndIf
EndProcedure 

Procedure Terminausgabe_lig_Fuellen(lig.l) 
  If ReadFile(1,"termin.dat") 
    laengel.l= Lof(1) 
    zeilenanzahlw.w=laengel.l/212         ;Gesamtlaenge = 210 + 2 für Satzende und Zeilenumbruch
        
    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*212)                                        
    zeilensatzs.s=ReadString(1) 
    adis.s=Left(zeilensatzs.s,30) 
    soyadis.s=Mid(zeilensatzs.s,31, 30) 
    termins.s=Mid(zeilensatzs.s,61, 10) 
    emails.s=Mid(zeilensatzs.s,71, 40)
    ceptels.s=Mid(zeilensatzs.s,111, 30)
    evtels.s=Mid(zeilensatzs.s,141, 30)
    digerbilgis.s=Mid(zeilensatzs.s,171, 40)
    
    tagdateis.s=Left(termins.s,2)
    monatdateis.s=Mid(termins.s,4,2)
    tagdateil.l= Val(tagdateis.s)
        
    If monatdateis.s=monats.s
      If tagdateil.l=tagl.l ; nur heutiger Tag wird ausgegeben Or tagdateil.l+1=tagl.l Or tagdateil.l-1=tagl.l Or tagdateil.l-2=tagl.l
        AddGadgetItem(lig.l, -1,termins.s+Chr(10)+adis.s+Chr(10)+soyadis.s+Chr(10)+emails.s+Chr(10)+ceptels.s+Chr(10)+evtels.s+Chr(10)+digerbilgis.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, 260, "Bugünkü tarihler", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget |#PB_Window_TitleBar| #PB_Window_ScreenCentered)
  ;If OpenWindow(#Tarihausgabe, 100, 100, 550, 200, "Tarihe - 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, 200, "Tarih", 70,#PB_ListIcon_FullRowSelect|#PB_ListIcon_AlwaysShowSelection)
      AddGadgetColumn(#Terminausgabe_lig, 1, "Adı", 150)
      AddGadgetColumn(#Terminausgabe_lig, 2, "Soyadı", 150)
      AddGadgetColumn(#Terminausgabe_lig, 3, "e-mail adresi", 200)
      AddGadgetColumn(#Terminausgabe_lig, 4, "Cep telefonu ", 150)
      AddGadgetColumn(#Terminausgabe_lig, 5, "Ev telefonu", 150)
      AddGadgetColumn(#Terminausgabe_lig, 6, "Diğer bilgileri", 200)
      ButtonGadget(#Terminausgabe_butBeenden, 440, 220, 80, 30, "Kapat")
    EndIf
    Terminausgabe_lig_Fuellen(#Terminausgabe_lig)
  EndIf      
EndProcedure 
 
Procedure Open_Datensuchfeld() 
  If OpenWindow(#Datensuchfeld,216,0,500,150,"Kayıt arama",#PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered) 
    If CreateGadgetList(WindowID(#Datensuchfeld)) 
      TextGadget  (#Datensuchfeld_txtInfo, 20, 20, 150, 20, "Lütfen ne arayacaksanız yazın") 
      StringGadget(#Datensuchfeld_strArama, 20, 60, 450, 20, "")                          
      ButtonGadget(#Datensuchfeld_butWeiter, 100, 100, 100, 30, "Devam") 
      ButtonGadget(#Datensuchfeld_butBeenden, 300, 100, 100, 30, "Kapat") 
    EndIf 
  EndIf 
EndProcedure 

Procedure Open_Datensuchausgabe(suchfelds.s) 
  If OpenWindow(#Datensuchausgabe, 100, 100, 1000, 500, "Kayıt gösterme", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_TitleBar| #PB_Window_ScreenCentered) 
    If CreateGadgetList(WindowID(#Datensuchausgabe)) 
      TextGadget(#Datensuchausgabe_txtSuch1, 10, 10, 80, 20, "Kayıt taraması:") 
      TextGadget(#Datensuchausgabe_txtSuch2, 90, 10, 440, 20, suchfelds.s, #PB_Text_Border)                       
      ListIconGadget(#Datensuchausgabe_lig, 5, 50, 990, 400, "Tarih", 80,#PB_ListIcon_FullRowSelect|#PB_ListIcon_AlwaysShowSelection) 
      AddGadgetColumn(#Datensuchausgabe_lig, 1, "Adı", 150) 
      AddGadgetColumn(#Datensuchausgabe_lig, 2, "Soyadı", 150)
      AddGadgetColumn(#Datensuchausgabe_lig, 3, "e-mail adresi", 200)
      AddGadgetColumn(#Datensuchausgabe_lig, 4, "Cep telefonu ", 150)
      AddGadgetColumn(#Datensuchausgabe_lig, 5, "Ev telefonu", 150)
      AddGadgetColumn(#Datensuchausgabe_lig, 6, "Diğer bilgileri", 200)
      ButtonGadget(#Datensuchausgabe_butBeenden, 900, 460, 80, 30, "Kapat")
    EndIf 
    
    If ReadFile(1,"termin.dat") 
      laengel.l= Lof(1) 
      zeilenanzahlw.w=laengel.l/212 
      
      For iw.w=0 To zeilenanzahlw.w
        FileSeek(1,iw.w*212)                                        
        zeilensatzs.s=ReadString(1) 
        adis.s=Left(zeilensatzs.s,30) 
        soyadis.s=Mid(zeilensatzs.s,31, 30) 
        termins.s=Mid(zeilensatzs.s,61, 10) 
        emails.s=Mid(zeilensatzs.s,71, 40)
        ceptels.s=Mid(zeilensatzs.s,111, 30)
        evtels.s=Mid(zeilensatzs.s,141, 30)
        digerbilgis.s=Mid(zeilensatzs.s,171, 40)
        
        posadiw.w= FindString(adis.s, suchfelds.s, 1)
        possoyadiw.w= FindString(soyadis.s, suchfelds.s, 1)
        posterminw.w= FindString(termins.s, suchfelds.s, 1)
        posemailw.w= FindString(emails.s, suchfelds.s, 1)
        posceptelw.w= FindString(ceptels.s, suchfelds.s, 1)
        posevtelw.w= FindString(evtels.s, suchfelds.s, 1)
        digerbilgiw.w= FindString(digerbilgis.s, suchfelds.s, 1)
         
        If posadiw.w>0 Or possoyadiw.w>0 Or posterminw.w>0 Or posemailw.w>0 Or posceptelw.w>0 Or posevtelw.w>0 Or digerbilgiw.w>0
          AddGadgetItem(#Datensuchausgabe_lig, -1,termins.s+Chr(10)+adis.s+Chr(10)+soyadis.s+Chr(10)+emails.s+Chr(10)+ceptels.s+Chr(10)+evtels.s+Chr(10)+digerbilgis.s)
        EndIf
        
      Next iw.w
      CloseFile(1) 
    EndIf
     
    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)
          Case #Datensuchfeld               :  CloseWindow(#Datensuchfeld):HideWindow(#Hauptfenster, 0)
          Case #Datensuchausgabe            :  CloseWindow(#Datensuchausgabe):HideWindow(#Hauptfenster, 0)
            
        EndSelect 
        
       
      Case #PB_Event_Gadget 
        
        Select EventWindow 
          
          Case #Hauptfenster 
            
            Select EventGadget 
              
              Case #Hauptfenster_butTermineingabe  : Open_Termineingabefenster():HideWindow(#Hauptfenster, 1) 
              Case #Hauptfenster_butDatenausgabe   : Open_Datenausgabe():HideWindow(#Hauptfenster, 1)
              Case #Hauptfenster_butDatenloeschung : Open_Datenloeschungauswahl():HideWindow(#Hauptfenster, 1) 
              Case #Hauptfenster_butDatenaenderung : Open_Datenaenderungauswahl():HideWindow(#Hauptfenster, 1) 
              Case #Hauptfenster_butTerminausgabe  : Open_Terminausgabe():HideWindow(#Hauptfenster, 1) 
              Case #Hauptfenster_butDatensuche     : Open_Datensuchfeld():HideWindow(#Hauptfenster, 1) 
              Case #Hauptfenster_butBeenden        : Quit = 1 
                
            EndSelect 
            
          Case #Termineingabefenster 
            
            Select EventGadget 
              
              Case #Termineingabefenster_butHinzufuegen 
                
                text1s.s = GetGadgetText(#Termineingabefenster_strAdi)  
                ergebnis1s.s = LSet(text1s.s, 30)                         
                text2s.s = GetGadgetText(#Termineingabefenster_strSoyadi) 
                ergebnis2s.s = LSet(text2s.s, 30) 
                text3s.s = GetGadgetText(#Termineingabefenster_strTermin) 
                ergebnis3s.s = LSet(text3s.s, 10) 
                text4s.s = GetGadgetText(#Termineingabefenster_strEmail) 
                ergebnis4s.s = LSet(text4s.s, 40)
                text5s.s = GetGadgetText(#Termineingabefenster_strCeptel) 
                ergebnis5s.s = LSet(text5s.s, 30)
                text6s.s = GetGadgetText(#Termineingabefenster_strEvtel) 
                ergebnis6s.s = LSet(text6s.s, 30)
                text7s.s = GetGadgetText(#Termineingabefenster_strDigerbilgi) 
                ergebnis7s.s = LSet(text7s.s, 40)
                
                textgesamts.s = ergebnis1s.s+ergebnis2s.s+ergebnis3s.s+ergebnis4s.s+ergebnis5s.s+ergebnis6s.s+ergebnis7s.s   
                
                If OpenFile(1,"termin.dat") 
                  laengel.l= Lof(1)                                                   
                  FileSeek(1,laengel.l)                                             
                  WriteStringN(1,textgesamts.s)                          
                  CloseFile(1)                                           
                EndIf 
                
                SetGadgetText(#Termineingabefenster_strAdi, "")     
                SetGadgetText(#Termineingabefenster_strSoyadi, "") 
                SetGadgetText(#Termineingabefenster_strTermin, "") 
                SetGadgetText(#Termineingabefenster_strEmail, "")
                SetGadgetText(#Termineingabefenster_strCeptel, "")
                SetGadgetText(#Termineingabefenster_strEvtel, "")
                SetGadgetText(#Termineingabefenster_strDigerbilgi, "")
                
                
              Case #Termineingabefenster_butBeenden 
                
                CloseWindow(#Termineingabefenster) 
                HideWindow(#Hauptfenster, 0)
           
            EndSelect 
           
            
          Case #Datenausgabe
             
            Select EventGadget
            
              Case #Datenausgabe_butBeenden
                  
                   CloseWindow(#Datenausgabe)
                   HideWindow(#Hauptfenster, 0)
            
            EndSelect  
            
            
          Case #Datenloeschungauswahl 
             
            Select EventGadget
            
              Case #Datenloeschungauswahl_butWeiter
                  
                   zeilew.w = GetGadgetState(#Datenloeschungauswahl_lig)
                   ergebniss.s = Str(zeilew.w)

                   CloseWindow(#Datenloeschungauswahl)
                   Open_Datenloeschungbestaetigung(zeilew.w)
                  
              Case #Datenloeschungauswahl_butBeenden
                  
                  CloseWindow(#Datenloeschungauswahl)
                  HideWindow(#Hauptfenster, 0)
             
            EndSelect
            
          
          Case #Datenloeschungbestaetigung 
              
            Select EventGadget 
            
              Case #Datenloeschungbestaetigung_butDaten_loeschen
                   
                    loeschs.s = LSet("-", 210,"-")                       
             
                    If OpenFile(1,"termin.dat")
                       FileSeek(1,zeilew.w*212)                                            
                       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/212 
        
                        For iw.w=0 To zeilenanzahlfile1w.w-1      ;wegen Löschzeile = 1 Zeile weniger
                         FileSeek(1,iw.w*212)                                        
                         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_butAbbrechen
                    
                    CloseWindow(#Datenloeschungbestaetigung)
                    HideWindow(#Hauptfenster, 0)
                    
            EndSelect 
            
            
          Case #Datenaenderungauswahl 
                    
            Select EventGadget
            
              Case #Datenaenderungauswahl_butWeiter
                  
                   zeilew.w = GetGadgetState(#Datenaenderungauswahl_lig)
                   ergebniss.s = Str(zeilew.w)

                   CloseWindow(#Datenaenderungauswahl)
                   Open_Datenaenderungbestaetigung(zeilew.w)
                  
              Case #Datenaenderungauswahl_butBeenden  
                  
                  CloseWindow(#Datenaenderungauswahl)
                  HideWindow(#Hauptfenster, 0)    
                      
            EndSelect
     
           
          Case #Datenaenderungbestaetigung 
             
            Select EventGadget  
           
              Case #Datenaenderungbestaetigung_butDaten_abspeichern
                    
                    text1s.s = GetGadgetText(#Datenaenderungbestaetigung_strAdi)  
                    ergebnis1s.s = LSet(text1s.s, 30)                         
                    text2s.s = GetGadgetText(#Datenaenderungbestaetigung_strSoyadi) 
                    ergebnis2s.s = LSet(text2s.s, 30) 
                    text3s.s = GetGadgetText(#Datenaenderungbestaetigung_strTermin) 
                    ergebnis3s.s = LSet(text3s.s, 10) 
                    text4s.s = GetGadgetText(#Datenaenderungbestaetigung_strEmail) 
                    ergebnis4s.s = LSet(text4s.s, 40)
                    text5s.s = GetGadgetText(#Datenaenderungbestaetigung_strCeptel) 
                    ergebnis5s.s = LSet(text5s.s, 30)
                    text6s.s = GetGadgetText(#Datenaenderungbestaetigung_strEvtel) 
                    ergebnis6s.s = LSet(text6s.s, 30)
                    text7s.s = GetGadgetText(#Datenaenderungbestaetigung_strDigerbilgi) 
                    ergebnis7s.s = LSet(text7s.s, 40)
                    
                    textgesamts.s = ergebnis1s.s+ergebnis2s.s+ergebnis3s.s+ergebnis4s.s+ergebnis5s.s+ergebnis6s.s+ergebnis7s.s   
                   
                   If OpenFile(1,"termin.dat")
                      FileSeek(1,zeilew.w*212)                               
                      WriteStringN(1,textgesamts.s)                          
                      CloseFile(1)                                          
                   EndIf
                   CloseWindow(#Datenaenderungbestaetigung)
                   HideWindow(#Hauptfenster, 0)
        
                Case #Datenaenderungbestaetigung_butBeenden
                    
                    CloseWindow(#Datenaenderungbestaetigung)
                    HideWindow(#Hauptfenster, 0)
              
            EndSelect
           
            
          Case #Terminausgabe
             
            Select EventGadget
            
              Case #Terminausgabe_butBeenden
                  
                   CloseWindow(#Terminausgabe)
                   HideWindow(#Hauptfenster, 0)
            
            EndSelect    
            
               
            
          Case #Datensuchfeld
            
            Select EventGadget
              
              Case #Datensuchfeld_butWeiter
                
                suchfelds.s = GetGadgetText(#Datensuchfeld_strArama)
                 
                CloseWindow(#Datensuchfeld)
                Open_Datensuchausgabe(suchfelds.s)
                
              Case #Datensuchfeld_butBeenden
                
                CloseWindow(#Datensuchfeld)
                HideWindow(#Hauptfenster, 0)  
                
            EndSelect
            
          Case #Datensuchausgabe
            
            Select EventGadget
              
              Case #Datensuchausgabe_butBeenden
                
                CloseWindow(#Datensuchausgabe)
                HideWindow(#Hauptfenster, 0)
                
            EndSelect      
              
        EndSelect 
        
    EndSelect 
  
  Until Quit=1 
  
EndProcedure 

MainLoop() 

End
Tschüssle
Michael
PB 4.02 (wegen Disphelper), 5.72 (Windows) (x64)
Andesdaf
Moderator
Beiträge: 2673
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Beitrag von Andesdaf »

> Die Ausgaben sind auf türkisch
Wie kommst du denn auf türkisch? :lol:
Win11 x64 | PB 6.20
HemSA
Beiträge: 221
Registriert: 16.10.2005 13:59
Wohnort: Manisa / Türkei
Kontaktdaten:

Beitrag von HemSA »

Andesdaf,
weil ich hier wohne.
PB 4.02 (wegen Disphelper), 5.72 (Windows) (x64)
Antworten