warum _wstrtime ?



  • Hallo,

    ich arbeite mit RadStudio und schreibe einige Programme die ich mit dem Borland 6 geschrieben habe neu mit Radstudio, nun habe ich in einer Funktion den Befehl _strtime aber es gibt auch den Befehl _wstrtime für wide-character. Ich Frage mich aber wieso für die Zeitangabe ein wide-character benötigt wird.



  • @Gestalt sagte in warum _wstrtime ?:

    Ich Frage mich aber wieso für die Zeitangabe ein wide-character benötigt wird.

    Damit der String zum System passt
    oder mit anderen wide-strings kombiniert werden kann.



  • @Gestalt Im Prinzip läuft es auf das hinaus was @DirkB schon geschrieben hat, aber hier nochmal ein Grund etwas ausführlicher: Wenn du in einer Anwendung wchar_t für Pfade & Co verwendest, dann macht es oft Sinn überall wchar_t zu verwenden. Weil du nicht an 100 Stellen konvertieren willst. Und dann ist es natürlich praktisch wenn du gleich alles als wchar_t bekommen kannst.

    Also konkret ein Beispiel: wenn meine Anwendung überall wchar_t verwendet, dann auch z.B. für Meldungen die ins Logfile geschrieben werden sollen. Die Meldungen wird man dann beim Schreiben vermutlich nach UTF-8 konvertieren, weil halt keiner UTF-16 Logfiles haben möchte. Aber das ist eine Stelle. Und davor, wo man die Messages zusammenbaut, möchte man dann mit UTF-16 arbeiten. Und wenn man da nen String mit der aktuellen Zeit haben möchte, dann ist es praktisch wenn es sowas wie _wstrtime gibt.


    Davon abgesehen ist es vermutlich doof in aktuellen Programmen noch mit wchar_t zu arbeiten, speziell wenn sie portierbar sein sollen. Da wäre eher UTF-8 mit char8_t angesagt. Allerdings ist es auch dann gut wenn man die wchar_t Funktionen hat, da kaum ein Windows auf UTF-8 eingestellt ist, d.h. das was man von den guten alten "char" Funktionen bekommt kann man nicht 1:1 verwenden. Was man von den wchar_t Funktionen bekommt kann man aber relativ einfach nach UTF-8 konvertieren. Ist jetzt bei _strtime relativ egal, weil da vermutlich nie non-ASCII Zeichen enthalten sein werden. Aber warum sich darauf verlassen wenn es auch eine wchar_t Variante der Funktion gibt?



  • Habe mir das schon so ähnlich gedacht, aber wollte es von Euch genau wissen wie sich das verhält. Es hätte ja auch einen anderen Hintergrund haben können den ich nicht wüsste. Dann kann ich ja beruhigt zu Bett gehen in 5 Stunden. 🙂



  • @hustbaer ich speichere meine Config-Files (*.ini) in UTF8 ab, auch die wo ich den Borland 6 noch benutze.


Anmelden zum Antworten