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 Content-Type: text/plain; charset="iso-8859-1" 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 Precedence: bulk hi i can read the records. here the code is.. /*finding the difference btween times*/ #include #include #include 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 > > > >