Skip to main content
Announcements
NEW: Seamless Public Data Sharing with Qlik's New Anonymous Access Capability: TELL ME MORE!
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

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

1 Solution

Accepted Solutions
whiteline
Master II
Master II

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.

View solution in original post

2 Replies
whiteline
Master II
Master II

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.

Not applicable
Author

Thanks.

I use First Value instead of FirstSortedValue and now can get the correct answer.