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
      Verwalter

      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.