Mail Archives: djgpp/2006/07/31/04:20:34
hi ram,
i would open the logfile in text read mode, and fgets each line in a
buffer long enough.
of the lines read, select the ones that contain your data, as i
understand, those that begin with a number:
if (isdigit(buf[0])) { ... }
then scan the line data with sscanf:
int jobid;
char dummy[50], dates[11], times[9];
sscanf(buf, "%d %s %s %s %s %s %s", &jobid, dummy, dummy, dummy, dummy,
dates, times);
please note, thay you may need to set the proper spacing between the
fields in the format string.
now, sscanf again, to get the time integer values:
int day, month, year, hour, minute, second;
sscanf(dates, "%d/%d/%d", &month, &day, &year);
sscanf(times, "%d:%d:%d", &hour, &minute, &second);
now get the system time and do your calculations.
good luck,
alex
ram DOT ragu AT gmail DOT com wrote:
> hi
> i have problem which is simple but im struggling to solve it..below i
> gave one sample of log file which is in text file format.the problem is
> i have to get time in this logfile and deduct the time from system file
> finally i have to bring the answer to standard output.. i got idea of
> reading line from logfile and copy to stdout. but the problem is i
> can't do manipulation(getting time difference) in textfile..some body
> please help me out..
>
>
> logfile:
> ---------
>
> jobid time
> ------------------------------------------------------------
>
> 181 0 ._11CH_CAS render qw 07/23/2005 00:08:44
> 112,113
> Full jobname:
> ._11CH_CAS1_q123s001_001_222_T2_ExtVeh02_SHD.ma
>
>
> 182 0 ._11CH_CAS render qw 07/23/2005 00:17:43
> 125-131:1
> Full jobname:
> ._11CH_CAS1_q123s001_001_222_T1_ExtVeh02_SHD.ma
> 183 0 ._11CH_CAS render qw 07/23/2005 00:27:05
> 125
> Full jobname:
> ._11CH_CAS1_q123s001_001_222_T2_ExtVeh02_SHD.ma
> 184 0 ._11CH_CAS render qw 07/23/2005 01:33:07
> 70-133:1
> Fulljobname:
> ._11CH_CAS1_q01s001_001_222_T3_EXTRA_VEHICALS_SHD.ma
>
>
> 185 0 ._11CH_CAS render qw 07/23/2005 01:36:57
> 70-133:1
> Full jobname:
> ._11CH_CAS1_q123s001_133_185_T3_ExtVeh03_SHD.ma
>
>
> the output in stdout should be like this:
>
>
> jobid timedifference(this is diff between logfiletime and
> systemtime)
> -----------------------------------
> 181 1000 minutes
>
>
- Raw text -