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 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 Content-type: text/plain; charset=us-ascii Content-transfer-encoding: 7BIT 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 Precedence: bulk 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 > >