Aktuelle Zeit: 02.12.2020 05:03

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: 01.04.2007 15:29 
Offline
Benutzeravatar

Registriert: 08.09.2004 00:57
Wohnort: Berlin
Für den nächsten Updater, hier ein Hilfsprogramm :wink:
Die erste Liste muß aber bereits als Text bestehen.
Code:
Structure Born
  Name.s
  Day.s
  Month.s
  Year.s
  MonthDay.l
EndStructure

NewList Born.Born()
Define.l File = ReadFile(#PB_Any, "geburtstag.txt")
Define.s temp, leer
If File
  While Not Eof(File)
    AddElement(Born())
    temp = ReadString(File)
    Born()\Name = Trim(StringField(temp, 1, ":"))
    temp = Trim(StringField(temp, 2, ":"))
    Born()\Day = StringField(temp, 1, ".")
    Born()\Month = StringField(temp, 2, ".")
    Born()\Year = StringField(temp, 3, ".")
    Born()\MonthDay = ParseDate("%mm%dd", Born()\Month + Born()\Day)
  Wend
  CloseFile(File)
  SortStructuredList(Born(), 2, OffsetOf(Born\Year), #PB_Sort_String)
  ForEach Born()
    With Born()
      leer = Space(20 - Len(\Name))
      Debug \Name + leer + "  :  " + \Day + "." + \Month + "." + \Year
    EndWith
  Next
  Debug "" : Debug ""
  SortStructuredList(Born(), 0, OffsetOf(Born\MonthDay), #PB_Sort_Long)
  ForEach Born()
    With Born()
      Debug \Day + "." + \Month + "  :  " + \Name
    EndWith
  Next 
EndIf

Debugausgabe kopieren und passend einfügen.

Ich hoffe, ich hab nicht zu viel geschreddert, macht Spaß :mrgreen:

_________________
PureBasic 5.71 | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 19.3 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 03.04.2007 23:52 
Offline

Registriert: 16.10.2005 13:59
Wohnort: Manisa / Türkei
Hier noch ein kleines Burtzeltagserinnerungsprogramm. Wenn allerdings ein Monatswechsel ansteht werden die Tage nicht im Vorraus ( Tage im nächsten Monat ) angezeigt.


Code:
 ;"Terminausgabe - Ausgabe nach Suchanforderung"
 ;In dem Beispielprogramm geht es um eine Datenbank, wo "Terminarten" ( Geburtstag oder andere Termine )
 ;mit dem Datum und Namen abgespeichert werden. Danach werden die Daten von der Datenbank Satz für Satz
 ;mit dem heutigen Datum verglichen (Monat und Tag) und bei Übereinstimmung in einem ListIconGadget
 ;aufgelistet. Es kann natürlich auch nach anderen "Suchmerkmalen" ausgesondert werden, es soll nur
 ;der Weg beschrieben werden, wie man das Problem angeht.
 
 ;PureBasic 4.0
 
 
 datumheutes.s=FormatDate("%dd.%mm.%yyyy", Date())
 
 If OpenWindow(0, 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(0))
     ListIconGadget(0, 5, 5, 540, 190, "Datum", 70,#PB_ListIcon_FullRowSelect|#PB_ListIcon_AlwaysShowSelection)
     AddGadgetColumn(0, 1, "Terminart", 140)
     AddGadgetColumn(0, 2, "Name", 320)
         
     
      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)
          vornames.s=Mid(wert2s.s,11, 15)
          nachnames.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(0, -1,datums.s+Chr(10)+vornames.s+Chr(10)+nachnames.s)
       
                EndIf
         
          EndIf
         
       
          Next iw.w
       
        CloseFile(1)
      EndIf
     
     
      Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
  EndIf
   
 EndIf
 
; IDE Options = PureBasic v4.00 (Windows - x86)
; CursorPosition = 17
; Folding = -
; Executable = Terminausgabe.exe

_________________
PB 4.02 (wegen Disphelper), 5.72 (Windows) (x64)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 03.04.2007 23:58 
Offline

Registriert: 16.10.2005 13:59
Wohnort: Manisa / Türkei
Und hier wäre dann noch das Eingabeprogramm dafür.

Code:
 ;Dateneingabe
 ;In einem Eingabe-Gadget werden für einen neuen Datensatz die Felder eingegeben und in der Datenbank am
 ;Schluß von den schon vorhandenen Datensätzen angehängt.
 
 ;PureBasic 4.0

If OpenWindow(0,216,0,500,300,"Termineingabefenster",#PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_TitleBar )
  If CreateGadgetList(WindowID(0))
      TextGadget(1, 20, 20, 150, 20, "Dateneingabefenster")
      TextGadget(2, 20, 60, 40, 20, "Datum")                       
      StringGadget(3, 80, 60, 60, 20, "")                         
      TextGadget(4, 20, 100, 50, 20, "Terminart")
      StringGadget(5, 80, 100, 100, 20, "")
      TextGadget(6, 20, 140, 60, 20, "Name")
      StringGadget(7, 80, 140, 150, 20, "")     
      ButtonGadget(8, 60, 200, 100, 30, "Daten hinzufügen")
      ButtonGadget(9, 200, 200, 100, 30, "Beenden")
      TextGadget(10, 150, 60, 380, 20, "Nur die ersten 10 Zeichen werden übernommen")
      TextGadget(11, 190, 100, 380, 20, "Nur die ersten 15 Zeichen werden übernommen")
      TextGadget(12, 240, 140, 380, 20, "Nur die ersten 25 Zeichen werden übernommen")
 
 
  EndIf

  Repeat
    EventID = WaitWindowEvent()
    If EventID = #PB_Event_CloseWindow
      Quit = 1
    EndIf
    If EventID = #PB_Event_Gadget
     
     
     
        If EventGadget()=8
     
             text1s.s = GetGadgetText(3)                             ;auslesen vom Stringgadget
             ergebnis1s.s = LSet(text1s.s, 10)                       ;auffüllen/begrenzen des Stringgadget auf 10 Zeichen
             text2s.s = GetGadgetText(5)
             ergebnis2s.s = LSet(text2s.s, 15)
             text3s.s = GetGadgetText(7)
             ergebnis3s.s = LSet(text3s.s, 25)
             textgesamts.s = ergebnis1s.s+ergebnis2s.s+ergebnis3s.s  ;zusammenlegen von den Feldern ( Gesamttext )
     
            If OpenFile(1,"termin.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, "")
       
        EndIf
     
   
        If EventGadget()=9
         Quit = 1
        EndIf
           
    EndIf
 Until Quit=1
 
EndIf
End

_________________
PB 4.02 (wegen Disphelper), 5.72 (Windows) (x64)


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye