ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/frameCount/src/frameCount.c
Revision: 1086
Committed: Fri Mar 5 17:21:20 2004 UTC (20 years, 4 months ago) by mmeineke
Content type: text/plain
File size: 1510 byte(s)
Log Message:
added support for files larger than 2 Gb

File Contents

# User Rev Content
1 mmeineke 1086 #define _FILE_OFFSET_BITS 64
2    
3 mmeineke 34 #include <stdlib.h>
4     #include <stdio.h>
5 mmeineke 84 #include <string.h>
6 mmeineke 34
7 mmeineke 36 #include "frameCount.h"
8 mmeineke 34
9 mmeineke 36
10 mmeineke 84 int frameCount( char* in_name, int outTime ){
11 mmeineke 37
12     FILE *in_file;
13     int nFrames = 0;
14 mmeineke 84 double time;
15 mmeineke 37 int i, j, k;
16     int lineNum = 0;
17     char readBuffer[2000];
18 mmeineke 84 char* foo;
19 mmeineke 37
20 mmeineke 84
21 mmeineke 37 in_file = fopen( in_name, "r" );
22     if( in_file == NULL ){
23     printf( "Error opening \"%s\"\n", in_name );
24     exit(8);
25     }
26    
27     fgets( readBuffer, sizeof( readBuffer ), in_file );
28     lineNum++;
29     if( feof( in_file ) ){
30     printf( "File ended unexpectedly at line %d\n", lineNum );
31     exit(8);
32     }
33    
34 mmeineke 84 if(outTime) printf("# frame Num\tTime\n" );
35    
36 mmeineke 37 while( !feof( in_file ) ){
37    
38     i = atoi(readBuffer);
39 mmeineke 36
40 mmeineke 37 fgets( readBuffer, sizeof( readBuffer ), in_file );
41     lineNum++;
42     if( feof( in_file ) ){
43     printf( "File ended unexpectedly at line %d, in frame%d\n",
44     lineNum, nFrames+1 );
45     exit(8);
46     }
47 mmeineke 34
48 mmeineke 84 if(outTime){
49     foo = strtok( readBuffer, " ,;\t" );
50     time = atof( foo );
51     }
52 mmeineke 37
53     for(j=0; j<i; j++){
54    
55     fgets( readBuffer, sizeof( readBuffer ), in_file );
56     lineNum++;
57     if( feof( in_file ) ){
58     printf( "File ended unexpectedly at line %d,"
59     " with atom %d, in frame %d\n", lineNum, j, nFrames+1 );
60     exit(8);
61     }
62    
63     }
64    
65     nFrames++;
66 mmeineke 84 if( outTime ){
67     printf("%d\t%f\n", nFrames, time );
68     }
69 mmeineke 37
70     fgets( readBuffer, sizeof( readBuffer ), in_file );
71     lineNum++;
72     }
73    
74     fclose( in_file );
75    
76     return nFrames;
77 mmeineke 34 }