/*
	 monolg.c  by TEMITORAVIOS  95/08/15 - 95/08/16
*/

#include <stdio.h>
#include <dos.h>
#include <stdlib.h>
#include <string.h>

#define	BUFFSIZE	1024
#define DEF_EXT		"mlg"

FILE *fp;
struct dosdate_t dt;
struct dostime_t tm;

void main(int argc, char *argv[])
{
	char	buff[BUFFSIZE];
	char	file[255];
	int		max, idx, numb;

	if (argc < 2) {
		strcpy(file,argv[0]);
		strcpy(file + strlen(file) -3, DEF_EXT);
	} else {
		strcpy(file,argv[1]);
	}
	if (NULL == (fp = fopen(file,"r"))){
		fputs ("ファイルをオープンできません。(",stderr);
		fputs (file,stderr);
		fputs (")\r\n",stderr);
		exit (1);
	}
	if (NULL == (fgets(buff,BUFFSIZE,fp))) {
		fputs ("ファイルが読めません。\r\n ",stderr);
		exit (1);
	}
	max = atoi(buff);
	_dos_getdate(&dt);
	_dos_gettime(&tm);
	numb = (dt.year*dt.month*dt.day*tm.hour*tm.minute*tm.second*tm.hsecond) / (65535/(max)) + 1;
	idx = 0;

	/* printf ("numb = %d\r\n",numb); */
	for(;;){
		if (NULL == (fgets(buff,BUFFSIZE,fp))) {
			if (max < idx) {
				fputs ("最大項目数が内容より多い。",stderr);
			} else {
				fputs ("ファイル内容がおかしい。",stderr);
			}
			exit (1);
		}
		/* '.'のみの行が区切り */
		if (buff[0] == '.' && buff[1] == '\n' && buff[2] == NULL) {
			if (++idx > numb)
				break;
			else
				continue;
		}
		if (idx == numb) {
			fputs (buff,stdout);
			continue;
		}
	}
	fclose(fp);
}
