delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2006/07/31/04:20:34

X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f
Date: Mon, 31 Jul 2006 10:42:31 +0300
From: alex bodnaru <alexbodn AT 012 DOT net DOT il>
Subject: Re: files manipulation
In-reply-to: <1154326764.352771.157900@m79g2000cwm.googlegroups.com>
To: djgpp AT delorie DOT com
Message-id: <44CDB467.40409@alex3>
MIME-version: 1.0
X-Accept-Language: en-us, he
References: <1154326764 DOT 352771 DOT 157900 AT m79g2000cwm DOT googlegroups DOT com>
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.12) Gecko/20060607
Debian/1.7.12-1.2
Reply-To: djgpp AT delorie DOT com
Errors-To: nobody AT delorie DOT com
X-Mailing-List: djgpp AT delorie DOT com
X-Unsubscribes-To: listserv AT delorie DOT com

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 -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019