Knoten im Gehirn ….

Startseite Foren Deutsches LiveCode-Forum Knoten im Gehirn ….

Ansicht von 2 Antwort-Themen
  • Autor
    Beiträge
    • #30524
      foto2004
      Teilnehmer

        Hallo Gemeinde.

        Ich sitze mir hier den Hintern wund und komme nicht auf den Fehler:

        Könnte da mal jemand darüber schauen und mir erklären was ich da falsch gemacht habe?

        command listFile
           -- set the tagvariable of this card to 0 /zum zurücksetzen
           if the tagvariable of this card = 0 then
              if there is a file (dataPfad&"tagesliste/tagesliste.txt") then
                 put files(dataPfad&"tagesliste","detailed") into tFiledat
                 answer information "tFiledat "&tFiledat -- kommt die Filelist
                 put item 5 of tFiledat into tAusgabe
                 answer information "tAusgabe "&tAusgabe -- kommt 1625551604
                 convert tAusgabe to dateItems
                 put it into dDate
                 put item 3 of dDate into ddDate
                 answer information "ddDate "&ddDate -- kommt “nichts”
                 answer information "dDate "&dDate -- kommt „OK“
                 convert the date to dateItems
                 put it into tDate
                 answer information "tDate "&tDate  -- kommt „2021,7,6,0,0,0,3“
                 put item 3 of tDate into iDate
                 answer information "iDate "& iDate  -- kommt “6“
                 if (ddDate <> iDate) then
                    delete file dataPfad&"tagesliste/tagesliste.txt"
                    answer information "gestrige Tagesliste wurde gelöscht"
                    put IntDate & CR AFTER url ("file:"&dataPfad&"tagesliste/tagesliste.txt")
                 else
                    answer information "Tageslisten-Datei ist von heute"
                 end if
              else
                 answer information "Tagesliste ist nicht vorhanden. Sie wird erstellt"
                 put IntDate AFTER url ("file:"&dataPfad&"tagesliste/tagesliste.txt")
              end if
              
              set the tagvariable of this card to 1
           end if
        end listFile
        

        Ziel war es das Änderungsdatum des Files mit dem heutigen zu vergleichen und wen von gestern oder so löschen und neu anlegen. aber irgendwie haut das nicht so hin wie ich es mir gedacht habe.

        Ja es sind eine Menge answer Anweisungen drinnen …. ist nur für mich gewesen um nachzuschauen was wirklich weitergegeben wird.

      • #30542
        Klaus Major
        Administrator

          Ich denke, der Fehler liegt hier:

          ...
          convert tAusgabe to dateItems
          put it into dDate
          ...

          IT hat hier nichts mit zu tun und dürfte dann daher leer sein, was den fehlenden
          Inhalt bdei Deinen ANSWER Dialogen erklärt.
          Du konvertierst die Variable tAusgabe, also musst Du sie auch weiterhin benutzen!

          ...
          convert tAusgabe to dateItems
          ## put it into dDate
          put tAusgabe into dDate
          ...

          Noch ein paar Hinweise:
          1. Sei nicht so sparsam mit Leerzeichen, die erhöhen die Lesbarkeit!
          („file:“&dataPfad&“tagesliste/tagesliste.txt“)
          VS
          („file:“ & dataPfad & „tagesliste/tagesliste.txt“)

          2. Tipperei sparen!
          Am Anfang des Skriptest solltest Du den Pfad in eine Variable packen:

          ...
          put dataPfad & "tagesliste/tagesliste.txt" into tDatei
          ...

          Diese Variable dann weiter im Skript benutzen.

          3. Dieses Skript ein ein gute Beispiel dafür, wie man viele IF THENs vermeiden kann:

          command listFile
             -- set the tagvariable of this card to 0 /zum zurücksetzen
            ## if the tagvariable of this card = 0 then
            if the tagvariable of this card <> 0 then
              exit listfile
            end if
            ## Und schon ein END IF gespart! :-)
          ...
        • #30559
          foto2004
          Teilnehmer

            Dankeschön genau das war es.

            ich werde das mit den Leerzeichen in Zukunft berücksichtigen.

            Habe gar nicht geschnallt dass ich mit exit aus dem command ausbrechen kann, was ja eigentlich logisch ist. Danke für den Hinweis.

            LG Immanuel

        Ansicht von 2 Antwort-Themen
        • Du musst angemeldet sein, um auf dieses Thema antworten zu können.