meta data for this page
  •  

Log-Datei erzeugen


Mitunter ist es bei der Entwicklung von Skripten nicht sinnvoll oder möglich, sich während der Ausführung mit FF_MessageBox einzelne Werte anzeigen zu lassen. In diesem Fall können die zu überwachenden Werte stattdessen in eine Log-Datei geschrieben werden, z.B. mit dieser Prozedur:

JScript: (VBScript siehe weiter unten)

  1. Meldung = "Das ist eine Logging-Info";
  2.  
  3. Log (2, Meldung,"",""); // die Datei wird erzeugt bzw. ergänzt
  4. // es werden der Zeitstempel und die Meldung geschrieben
  5.  
  6. function Log(Parameter, t1, t2, t3)
  7. {
  8. // ***************************************************************************************
  9. // * schreibt bis zu drei Werte t1 bis t3 in die Textdatei ff_testlog.txt im Scriptordner
  10. // * mehrere Werte werden durch Semikolon voneinander getrennt und
  11. // * in einer Zeile dargestellt,
  12. // * optional wird eine Zeile mit Datum und Uhrzeit voran gestellt
  13. // * Parameter wird durch Addition folgender Werte gebildet:
  14. // * 0 - vorhandene Datei ergänzen bzw. Datei neu erstellen
  15. // * 1 - ggf. vorhandene Datei löschen und neu erstellen
  16. // * 2 - Zeitstempel einfügen
  17. // **************************************************************************************
  18.  
  19. var tf,Werte;
  20. ForAppending = 8;
  21. var Logdatei;
  22. Logdatei = FF_GetFFPathEx(2) +"\\ff_testlog.txt";
  23. if( typeof(fso) == "undefined" )
  24. fso = new ActiveXObject("Scripting.FileSystemObject");
  25.  
  26. if( (Parameter == 1) || (Parameter == 3) ) //Datei löschen
  27. if( fso.FileExists(Logdatei) )
  28. fso.DeleteFile(Logdatei);
  29.  
  30. if( (Parameter == 2) || (Parameter == 3) ) // mit Zeitstempel
  31. {
  32. var D=new Date();
  33. Werte = "----- " + D.toLocaleDateString() + " " + D.toLocaleTimeString() + " -----\r\n";
  34. }
  35. if( t1 != "") Werte = Werte + t1;
  36. if( t2 != "") Werte = Werte + "; " + t2;
  37. if( t3 != "") Werte = Werte + "; " + t3;
  38.  
  39. if( !fso.FileExists(Logdatei) )
  40. {
  41. tf = fso.CreateTextFile(Logdatei, true);
  42. tf.Close();
  43. }
  44.  
  45. tf = fso.OpenTextFile(Logdatei, ForAppending, true);
  46. tf.WriteLine(Werte);
  47. tf.Close();
  48. } // End Sub


VBScript:

  1. Meldung = "Das ist eine Logging-Info"
  2. Call Log (2, Meldung,"","") ' die Datei wird erzeugt bzw. ergänzt
  3. ' es werden der Zeitstempel und die Meldung geschrieben
  4.  
  5. Sub Log(Parameter, t1, t2, t3)
  6. ' ***************************************************************************************
  7. ' * schreibt bis zu drei Werte t1 bis t3 in die Textdatei ff_testlog.txt im Scriptordner
  8. ' * mehrere Werte werden durch Semikolon voneinander getrennt und
  9. ' * in einer Zeile dargestellt,
  10. ' * optional wird eine Zeile mit Datum und Uhrzeit voran gestellt
  11. ' * Parameter wird durch Addition folgender Werte gebildet:
  12. ' * 0 - vorhandene Datei ergänzen bzw. Datei neu erstellen
  13. ' * 1 - ggf. vorhandene Datei löschen und neu erstellen
  14. ' * 2 - Zeitstempel einfügen
  15. ' **************************************************************************************
  16.  
  17. Dim fso, tf
  18. Dim Werte
  19. Const ForAppending = 8
  20. Dim Logdatei
  21. Logdatei = FF_GetFFPathEx(2) & "\ff_testlog.txt"
  22.  
  23. set fso = CreateObject("Scripting.FileSystemObject")
  24.  
  25. if Parameter = 1 or Parameter = 3 Then ' Datei löschen
  26. If (fso.FileExists(Logdatei)) Then
  27. fso.DeleteFile(Logdatei)
  28. End If
  29. End If
  30. if Parameter = 2 or Parameter = 3 Then ' mit Zeitstempel
  31. Werte = "----- " & Date & " - " & Time & " -----" & vbNewLine
  32. End If
  33.  
  34. if t1 <> "" then Werte = Werte & t1
  35. if t2 <> "" then Werte = Werte & "; " & t2
  36. if t3 <> "" then Werte = Werte & "; " & t3
  37.  
  38. If not (fso.FileExists(Logdatei)) Then
  39. Set tf = fso.CreateTextFile(Logdatei, True)
  40. tf.Close
  41. End If
  42.  
  43. Set tf = fso.OpenTextFile(Logdatei, ForAppending, True)
  44. tf.WriteLine(Werte)
  45. tf.Close
  46. End Sub