FormatDate

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Simieto
Beiträge: 10
Registriert: 19.02.2013 02:15

FormatDate

Beitrag von Simieto »

PB 5.10 Linux

Code: Alles auswählen

Datum = Date()
SetGadgetText(String_0, FormatDate("%dd.%mm.%yyyy  %hh:%ii:%ss", Datum))
bringt folgendes Ergebnis: 19022013225220

Was habe ich denn nun schon wieder nicht verstanden? Laut Hilfe sollte FormatDate doch ein lesbares Ergebnis liefern.
Benutzeravatar
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: FormatDate

Beitrag von ts-soft »

Code: Alles auswählen

Datum = Date()
Debug FormatDate("%dd.%mm.%yyyy  %hh:%ii:%ss", Datum)
Debugger hat geschrieben:19.02.2013 23:05:07
Für mich ist das lesbar. Selbes Ergebnis unter Linux wie auch Windows.
Wäre, wie immer, vielleicht Sinnvoll, ein ausführbares Beispiel zu posten :wink:
(evtl. noch Angabe der Compileroptionen)

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.
Bild
Benutzeravatar
Simieto
Beiträge: 10
Registriert: 19.02.2013 02:15

Re: FormatDate

Beitrag von Simieto »

Für mich ist das lesbar. Selbes Ergebnis unter Linux wie auch Windows.
Wäre, wie immer, vielleicht Sinnvoll, ein ausführbares Beispiel zu posten :wink:
(evtl. noch Angabe der Compileroptionen)
HalloWelt.pb

Code: Alles auswählen

ImportC ""
  gtk_entry_set_alignment(entry, xalign.f)
EndImport

XIncludeFile "MainWindow.pbf"

OpenWindow_0()

Procedure Button_0_Click(type)
	gtk_entry_set_alignment(GadgetID(String_0), 0.5)
	gtk_entry_set_alignment(GadgetID(String_1), 0.5)
	SetGadgetText(String_1, "Hallo Welt!")
	Datum = Date()
	SetGadgetText(String_0, FormatDate("%dd.%mm.%yyyy  %hh:%ii:%ss", Datum))
EndProcedure

Repeat
	Event = WaitWindowEvent()
	Select EventWindow()
		Case Window_0
			Window_0_Events(Event)
		EndSelect
Until Event = #PB_Event_CloseWindow
MainWindow.pbf

Code: Alles auswählen

Global Window_0

Global Button_0, String_0, String_1

Declare Button_0_Click(EventType)

Procedure OpenWindow_0()
  Window_0 = OpenWindow(#PB_Any, 0, 0, 250, 130, "Hallo Welt!", #PB_Window_SystemMenu)
  Button_0 = ButtonGadget(#PB_Any, 80, 100, 80, 20, "Hallo")
  String_0 = StringGadget(#PB_Any, 30, 60, 180, 20, "")
  String_1 = StringGadget(#PB_Any, 30, 20, 180, 20, "")
EndProcedure

Procedure Window_0_Events(event)
  Select event
    Case #PB_Event_CloseWindow
      ProcedureReturn #False

    Case #PB_Event_Menu
      Select EventMenu()
      EndSelect

    Case #PB_Event_Gadget
      Select EventGadget()
        Case Button_0
          Button_0_Click(EventType())          
      EndSelect
  EndSelect
  ProcedureReturn #True
EndProcedure
Jetzt wird es lustig, ich habe eine Leerzeile gelöscht und die Datei noch einmal gespeichert und jetzt kommt das erwartete Ergebnis.
Purebasic 'merkt' sich also auch irgendwelche Dinge außerhalb des Codes.
Ich hatte vorher mit Ziffern experimentiert und dem StringGadget auch mal #PB_String_Numeric verordnet.

Nun jedenfalls funktioniert es.
Zuletzt geändert von Simieto am 20.02.2013 00:45, insgesamt 1-mal geändert.
Benutzeravatar
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: FormatDate

Beitrag von ts-soft »

Code: Alles auswählen

 String_0 = StringGadget(#PB_Any, 30, 60, 180, 20, "", #PB_String_Numeric)
Was erwartest Du, was das Flag "#PB_String_Numeric" bewirkt?

PS: Es wäre besser die beiden Sourcen zusammenzupacken, es ist für die Helfer unnötige
Arbeit, dies für Dich zu tun und die Helfer werden den Code im allgemeinen auch nicht
speichern. EnableExplicit solltest Du auch verwenden, ist schon mal ein Zeichen dafür,
das Du bereits nach Fehlern gesucht hast, bzw. die Helfer brauchen Fehler, die durch
falsche Nutzung von Variablen entstehen, nicht mehr überprüfen.

Diese Hinweise sind nicht böse gemeint, sondern erleichtern es den Helfern beim aufspüren
Deines Fehlers, so sind auch wesentlich mehr Boarduser bereit Dir schnell und kompetent
zu Helfen.

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.
Bild
Benutzeravatar
Simieto
Beiträge: 10
Registriert: 19.02.2013 02:15

Re: FormatDate

Beitrag von Simieto »

Was erwartest Du, was das Flag "#PB_String_Numeric" bewirkt?
Nun genau das, desshalb hatte ich es ja auch für das Datum gelöscht.
Aber nur die neue *.pbf zu speichern änderte das Verhalten nicht. Erst als ich auch die andere noch mal verändert und gespeichert hatte, funktionierte es wie erwartet.
Also irgendwo merkt sich PB noch Sachen außerhalb des Codes.
Benutzeravatar
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: FormatDate

Beitrag von ts-soft »

Naja, der FormDesigner ist zur Zeit noch nicht besonders ausgereift, der hat so Probleme
mit den Flags und dem Umschalten von Codevorschau und Design :wink:

Ich persönlich werden den auch noch nicht einsetzen. Ich komme auch ohne FormDesigner
zurecht und kann warten, bis das Tool mal ausgereift ist.
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.
Bild
Antworten