delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2006/07/31/09:16:07

X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f
From: ram DOT ragu AT gmail DOT com
Newsgroups: comp.os.msdos.djgpp
Subject: Re: files manipulation
Date: 31 Jul 2006 06:07:53 -0700
Organization: http://groups.google.com
Lines: 116
Message-ID: <1154351273.909797.300920@b28g2000cwb.googlegroups.com>
References: <1154326764 DOT 352771 DOT 157900 AT m79g2000cwm DOT googlegroups DOT com>
<44CDB467 DOT 40409 AT alex3>
NNTP-Posting-Host: 203.124.146.130
Mime-Version: 1.0
X-Trace: posting.google.com 1154351278 28495 127.0.0.1 (31 Jul 2006 13:07:58 GMT)
X-Complaints-To: groups-abuse AT google DOT com
NNTP-Posting-Date: Mon, 31 Jul 2006 13:07:58 +0000 (UTC)
In-Reply-To: <44CDB467.40409@alex3>
User-Agent: G2/0.2
X-HTTP-UserAgent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0),gzip(gfe),gzip(gfe)
X-HTTP-Via: 1.0 securegate.antispam.crestindia.com:8080 (squid/2.5.STABLE3)
Complaints-To: groups-abuse AT google DOT com
Injection-Info: b28g2000cwb.googlegroups.com; posting-host=203.124.146.130;
posting-account=nfho_A0AAABKRKv5S_k82nka4Gv5WFxM
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
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
  i can read the records. here the code is..
/*finding the difference btween times*/
#include <stdio.h>
#include<ctype.h>
#include<time.h>
main()
{
char buf[1000];
char dummy[50],dates[11],times[9];
int day,month,year,hour,minute,second,jobid;
FILE *ptr;
clrscr();;
ptr = fopen("read.txt","r");
while (feof(ptr) == 0)
    {
	fgets(buf, 1000, ptr);	/* Read next record			*/
	if(isdigit(buf[0]))
	{
	sscanf(buf,"%d %s %s %s %s %s
%s",&jobid,dummy,dummy,dummy,dummy,dates,times);
	printf("\n\n\n\n\n\n\n\n %d %s %s",jobid,dates,times);
	sscanf(dates,"%d/%d/%d",&month,&day,&year);
	printf("\n\n\n%d %d %d",month,day,year);
	sscanf(times,"%d:%d:%d",&hour,&minute,&second);
	printf("\n\n\n %d:%d:%d",hour,minute,second);
     	}
	/* printf("%s",buf);	 O/P the record to the screen		*/
     }
 }




  in this code how can i go to the next records? here i can get only
one record.. then here i want to do time difference between two
records..
alex bodnaru wrote:
> 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