2 Replies Latest reply: Sep 4, 2012 1:37 AM by Nick Tang RSS

    Read first and last line of log files

      Hi all,

       

      I am working on a .qvw that read the fist line and last line of qlikview log files. I want to know how long does the specific job run.

       

      How should I write the script in order to get the first row and last row date time?

       

      Thanks..

       

      I have written something for reference...

       

       

       

       

      //search all log location in C:/QlikView/log

       

      sub

      DoDir (Root)

      for each Ext in 'txt'

      for each File in filelist (Root&'\TaskLog.' &Ext)

      Info:

      Load '$(File)' as Name, FileSize( '$(File)' ) as

      Size, FileTime( '$(File)' ) as FileTime

      autogenerate 1;

      next File

      next Ext

      for each Dir in dirlist (Root&'\*' )

      call DoDir (Dir)

      next Dir

      end sub

      call DoDir ('C:\Qlikview\log')

      //for each location, read the TaskLog.txt file and save it in a table.

      for a=0 to noofrows('Info') -1;

      let location=peek('Name',a,'Info');

      StartFile:

      LOAD

      $(a) as FileNo,

      replace(Replace('$(location)',left('$(location)',58),''),'\TaskLog.txt','') as FileName,

      left(@1,18) as Date

      FROM

      $(location)

      (
      txt, utf8, no labels, delimiter is '\t', msq);

      next

        • Re: Read first and last line of log files
          whiteline _

          First, transform your date format from string to numeric date (so that you can sort):

          timestamp#(left(@1,18), 'DD-MM-YYYY hh:mm:ss') as Date

          'DD-MM-YYYYhh:mm:ss' here is an example, you should use suitable format.

           

          Now you can use FirstSortedValue to sort and aggregate your table:

           

          FirstStrings:

          LOAD

                FileName,

                FirstSortedValue(Date, Date) as FirstString

          Resident StartFile

          Group by FileName;

           

          LastStrings:

          LOAD

                FileName,

                FirstSortedValue(Date, -Date) as LastString

          Resident StartFile

          Group by FileName;

           

          I didn't find any data string in your example, except Date field.You should replace it (bold) with desired.