• Creator
    Topic
  • #4179

    Hi,

    This is a very basic question, but I can’t find the answer. Maybe someone here can help me.

    How do I create a new file on the (local) filesystem and write plain text to it?

    I have written a tool to import about 50 address book, and I sent the logging to an administrator. But the logging is too big for a messagebody, so I want to create a log file and sent it as an attachment.

    A simple solution as I used to use in earlier versions of (Visual) Basic is

    open “file” for output as #1
    print #1 “My log entry”
    close #1

    but this results in compile errors in Formativ.

    Who can help me?

    Kind regards,
    Roland Leurs

  • Author
    Replies
  • #7370
    MA
    Participant

    Check the Formativ Language Guide and Visual Basic Script Guide for more information. Here is some of the options available:

    – Use SaveStringToFile method to save a string value to a file.
    call utilities.SaveStringToFile(“My log entry”, “c:tempmylog.txt”, true)

    – Creates a new StringList object and call SaveToFile method to save the strings in the list to a file.
    dim oList
    set oList = utilities.StringList
    oList.add(“Line 1”)
    oList.add(“Line 2”)
    oList.SaveToFile(“c:tempmylog.txt”)
    set oList = nothing

    Hope this helps.
    MA

    #7373
    Support 1a
    Participant

    Thanks MA.

    Advansys Support

    #7372
    lp_irovetz
    Participant

    Another way Razz

    Direct with VBS

    Set fso = CreateObject(“Scripting.FileSystemObject”)
    Fic_Path = “C:somewhere in file system”

    Set tempfile = fso.CreateTextFile(Path)

    tempfile.WriteLine (“Arcane GroupWare”)
    tempfile.WriteLine( “[Fic_Vis_Cat]”)
    tempfile.WriteLine( “Téléphone” )
    tempfile.Close

    L.P. Irovetz

    #7371
    Support 1a
    Participant

    Thanks LP!

    Advansys Support

    #7374

    I implemented the version of L.P. Irovetz as it writes directly to the logfile. So if the applet crashes I even have some logging. This is a major difference compared to the solution of MA.

    Just had to change fso.CreateTextFile(Path) to fso.CreateTextFile(Fic_Path).

    Thanks for your response!
    Roland Leurs

    #7375
    Support 1
    Participant

    Roland,

    It may be worthwhile testing to ensure that, in the event of a crash, your log entries have been saved to the log file. This is because the text may not be flushed from memory to disk until the line

      tempfile.Close

    executes, or the memory buffer is full.

    A simple way to test is to write an applet which fails to call tempfile.Close.

    It may be worth also looking at function Utilities.Trace which is documented in the Formativ Language Guide. This is particularly useful for debugging an applet with the help of an external debug event viewer.

    Regards,
    Advansys Support

Viewing 6 replies - 1 through 6 (of 6 total)
  • You must be logged in to reply to this topic.