aktuelles PC Datum im Quellcode einpflegen

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • aktuelles PC Datum im Quellcode einpflegen

      Liebe Forenmitglieder,

      ihr habt euch doch bestimmt auch schon öfter mal gewünscht, das Aktuelle PC Datum und die Uhrzeit in euren Bascom Quellcode übernehmen zu können.
      Damit beim Kompilieren die aktuelle Zeit gleich übernommen wird. Z.B. bei einer RTC oder einem GSM Modul.

      Habt Ihr dafür schon eine Lösung parat?

      VY73 Dieter
    • Im Quellcode hilft sie wenig da sie sofort veraltert. Die Gsm können sie erfragen oder sich bei der nächsten Sms holen. Eine Rtc könnte vorher am PC die Zeit bekommen, jedoch muß ihr späterer Einsatzort die Möglichkeit haben sie richtig zu stellen oder sie zu erfragen (was dann aber ihren Einsatz überflüssig machen würde :D
    • Auszug aus der Bascomhilfe:

      Action
      Returns a string with the date and time of compilation.

      Syntax
      Var = VERSION(frm)

      Remarks
      Var is a string variable that is assigned with a constant. This version constant is set at compilation time to MM-DD-YY hh:nn:ss
      Where MM is the month, DD the day of the month, YY the year.
      hh is the hour is 24-hour format, nn the minutes, and ss the seconds.
      When frm is set to 1, the format date will be shown in European DD-MM-YY hh:nn:ss format.
      When frm is set to 2, the version info from $VERSION will be used.
      When frm is set to 3, the filename will be used.
      When frm is set to 4, the version info from $VERSION will be used without the separating dots. So 1.2.3 will become 123.
      When frm is a string constant, the string constant will be used.



      While it is simple to store the version of your program in the source code, it is harder to determine which version was used for a programmed chip.
      The Version() function can print this information to the serial port, or to an LCD display.

      See Also
      VER , $VERSION

      Example
      Print Version()
      Wem ich nicht ausdrücklich widerspreche, der darf das bis auf Widerruf als "Gefällt mir" verstehen.
    • Das schöne, tolle an Marks Arbeit bezüglich Bascom ist, Er hat bereits an Vieles gedacht und in seinen Bascomversionen eingeplant, eingebaut.

      Mich hat vor Jahren ähnliches interessiert, habe darauf hin die Hilfe durchstöbert und bin fündig geworden.
      Ich löse es schon länger auf diese Weise:
      Dim Progdatum As String * (Datumslänge )
      Progdatum = Version(1)
      Dim Progname As String * (Program_Namenslänge)
      Progname = Version(3)

      Nun lässt sich beides printen, oder auf Display anzeigen.
      Printen, wenn Version noch im Versuchs_Stadium ist. Dann wird dies in der Logdatei mit benutzt, Beides gibt entsprechenden Bezug an.

      Was Mark Uns zur Verfügung stellt, sollte auch mal lobend erwähnt werden. ;)
    • Lieber bitlogger,
      da gebe ich dir vollkommen Recht, Mark ist ein As und sehr hilfsbereit. Seine Leistungen sind unbezahlbar.
      Mark würde ich gerne mal persönlich kennen lernen. Auch die ganzen aktiven Forenmitglieder. Das wäre eine schöne Sache.

      Danke auch an die fleißigen Beantworter meiner Frage. Wie immer ist es ein Genuss mit Euch zu kommunizieren.

      73 Dieter
    • Hallo Dieter,

      ich hatte dafür vor Jahren (>1 Dekade) mal "im anderen Forum" eine Option für das Hinterlegen des Compilerdatums IM CODE bereitgestellt: WENN man sich angewöhnen kann, statt des Menüs die Taste F7 fürs Compilieren zu drücken, UND gewillt ist, das (geniale, IMHO) Programm AUTOHOTKEY laufen zu lassen, DANN geht das wie folgt (zumindest unter Win 7 ging es noch, ich gehe aber auch davon aus, dass es unter Win10/11 weiterhin geht - Mitglied Uwe kann das vielleicht sagen, der ist hier noch aktiv hatte es seinerzeit ebenfalls verwendet):

      * Installiere Autohotkeys

      * lade Dir das folgende Script im Textformat herunter:
      jurmo.de/AVR/Versioner.ahk.txt

      * benenne die .ahk.txt Datei in .ahk um (also das .txt entfernen. Beachte, ob Deine Explorer-Anzeige das .txt ggf. unterdrückt (generell eine schlechte Idee -> Einstellungen -> Erweiterungen bei bekannten Dateien ausblenden DEAKTIVEREN))

      * doppelklicke das ahk, um es mit Autohotkey zu starten

      * füge in Dein BAS-Programm die folgenden Zeilen ein (sonst macht es das ahk beim Compilieren selbst):
      '******************************************************
      Const BasFilename="hier wird Dein BAS-Programmname stehen und der Zeitstempel des Compilierens"
      '******************************************************
      Diese Zeile wird beim Drücken der Taste F7/Compilieren mit Programmname und aktuellem Datum aktualisiert!
      Wenn Du die Zeile im durchlaufenden, compilierten Code (also nicht einem Blockkommentar) hinterlegst, siehst Du den String sogar im compilierten Code (kostet aber Platz!). Wenn es in einem Blockkommentar steht, ist es nur eine Information im Programmtext.

      Generell könnte man auch ein Copyright in den Text einstellen, dafür müsste man das ahk aber anpassen.

      Schau mal, ob das Deinen Anforderungen genügt. Ich bin nicht beleidigt, wenn Du es nicht verwenden möchtest ;) Und wenn es nicht funktionieren sollte, werde ich wohl hier davon lesen, dann schauen wir mal, ob wir es unter Win10/11 zum Laufen bekommen ;)

      Natürlich alles auf eigene Gefahr hin ;) Ich setze es aber seit Jahren erfolgreich ein, allerdings in einer erweiterten Version, die auch noch eine Sicherheitskopie mit Datumsstempel separat ablegt und SVN für Versionkontrolle aufruft.

      Viele Grüße
      Christoph
    • Verstehe ich das richtig:
      Die BASCOM Version Lösung schreibt die Infos beim Kompilieren in eine Konstante, deren Inhalt man im Programmverlauf verwenden kann.
      Die Autohotkey-Lösung schreibt die Infos in die BASCOM-Quelldatei und dann wird das Ganze kompiliert. Wäre nur nötig, wenn man die Infos auch in Quelltext haben möchte. Wobei das letzte Dateiänderungsdatum ja auch ein Attribut der Datei ist.
      Verstehe ich das richtig, Christoph?
    • Ja, richtig. "Damals" dachten wir, dass es bei der Entwicklung unter Umständen praktisch wäre, den Zeitstempel im Code auch mit dem Zeitstempel im Chip (ausgelesen) vergleichen zu können ;)

      Der Zeitstempel mit dem "Versioner" kann natürlich auch im Programm angesprochen werden, ist ja simpler Text in einer Konstante :)

      Ich habe schon einige Umzüge in Sachen Hardware mitgemacht, so dass die Zeitstempel diverser Dateien nicht mehr unbedingt den Erstelldaten entsprechen...

      Viele Grüße
      Christoph
    • Hallo Christoph,

      vielen Dank für die ausführlichen Information zur Datumsübernahme. Bislang kam ich noch nicht dazu, deine Tipps zu testen.
      Bin noch stark beschäftigt mit der Programmierung eines GSM Moduls, dem M950E.

      Ich werde zu gegebener Zeit von meinen Erkenntnissen berichten.

      VY73, Dieter