Announcement

Collapse
No announcement yet.

Probleme mit Zeitvergleich?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Probleme mit Zeitvergleich?

    Hallo,

    ich bin eine Wetterstation am bauen und bekomme alle 15 min. die aktuellen Werte in einer txt Datei geschrieben.
    Diese Datei möchte ich um 00U00 eines jeden Tages kopieren und in einem anderen Ordner speichern, sozusagen als Datenbank.
    Zusätzlich soll der Name der neuen TXT Datei umbennat werden in einem Namen mit dem aktuellen Datum.
    Probleme macht mir aber der Zeitvergleich.

    ich habe hier was probiert was aber nicht funzt.

    Kann einer mal bitte schauen.
    <PRE>
    TTime jetzt=Now();
    TTime savezeit=0;
    fstream inout;
    if(jetzt==savezeit)
    {
    inout.open("c:\\Ammea\\Wetterdaten\\Bodentemperatu r.txt",ios::in);
    inout.close();
    inout.open("c:\\Ammea\\Wetterdatenbank\\Bodentempe ratur.txt",ios:ut|ios::app);
    inout.close();
    }

    </PRE>

  • #2
    TTime ist nur ein Typ von TDateTime. Du wirst dich wohl oder übel mit dem Ding auseinandersetzen müssen, und dabei das aktuelle Tagesdatum beachten müssen

    TTime t=Now();

    String s=t.DateTimeString();

    ergibt nämlich

    31.01.2005 16:01:46

    Daraus folgt, dass

    TTime savezeit=0

    30.12.1899

    ist
    Christian

    Comment


    • #3
      Hallo,

      das verstehe ich nicht ganz, es ist ja auch egal wenn ích bei einer Änderung des Tagesdatums das Ereignis auslöse, oder???
      Aber wie mache ich den Vergleich?

      Comment


      • #4
        Mit zwei TDateTime Objekten unter Berücksichtigung der Uhrzeit UND des Datum
        Christian

        Comment


        • #5
          In diesem Falle reicht ja auch der Vergleich des Datums mit einem cast auf Integer, da der ganzzahlige Bereich von TDateTime das Datum enthält. Dieses muss ja zwingend um 0 Uhr wechseln, egal, wann man dies zuerst abfragt.

          Also
          <PRE>
          TDateTime jetzt = Now;
          if ((int) jetzt > (int) savezeit)
          {
          ...
          savezeit = Now;
          }
          </PRE&gt

          Comment


          • #6
            Hallo,
            es funktioniert
            <pre>
            TDateTime jetzt = Now();
            TDateTime savezeit = jetzt;
            if ((int) jetzt > (int) savezeit)
            {
            ...
            savezeit = Now();

            }
            </pre>
            Vielen Dank an all

            Comment


            • #7
              Hallo, jetzt habe ich noch ein Problem mit dem kopieren der Datei, sowie hier unten funzt es aber ich möchte gerne an dem Namen Bodentemperatur.txt noch das Datum anhängen.

              Wie kann ich das machen????

              <pre>
              system("move c:\\Ammea\\Wetterdatenbank\\Bodentemperatur.txt C:\\Ammea\\Wetterdatenbank_Lang\\Bodentemperatur.t xt");
              </pre&gt

              Comment


              • #8
                Schau Dir doch einfach mal die Hilfe zu TDateTime an! Dafür gibt es die Methoden DateString, den Operator AnsiString und ganz elegant die Methode Format

                Comment


                • #9
                  Hallo,

                  ja ich habe mir die Hilfe mal angeschaut, aber da verstehe ich nicht viel von, bin neu auf dem Gebiet C++.
                  Ich glaube ich kann da mit der Funktion system ("move gar nichts machen , oder???
                  ..

                  Comment


                  • #10
                    Schau Dir mal folgendes Beispiel, unter Verwendung der WinAPI Funktion CopyFile an:
                    <PRE>
                    TDateTime dtHeute = Now();
                    AnsiString asSourceFile = "C:\\Ammea\\Wetterdaten\\Bodentemperatur.txt";
                    AnsiString asDestFile = "C:\\Ammea\\Wetterdatenbank_Lang\\";
                    AnsiString asFileName = ExtractFileName(asSourceFile);
                    AnsiString asFileExt = ExtractFileExt(asFileName);
                    asFileName.Delete(asFileName.AnsiPos(asFileExt), asFileExt.Length());
                    asDestFile = asDestFile + asFileName + " " + dtHeute.DateString() + asFileExt;
                    CopyFile(asSourceFile.c_str(), asDestFile.c_str(), false);
                    </PRE>
                    Natürlich fehlt hier noch jegliche Überprüfung auf Korrektheit der Strings im Sinne von Pfadangaben...

                    Grüße Joche

                    Comment


                    • #11
                      Hallo,

                      das funktioniert so , aber er kopiert immer nur eine Zahl in die neue Datei, und den rest nicht, weisst du woran das noch liegen kann??

                      Comment


                      • #12
                        Hi,

                        nein, das kann ich mir nicht erklären.
                        Kann es sein, dass Du die Datei gar nicht kopieren, sondern anhängen willst?

                        Grüße Joche

                        Comment

                        Working...
                        X