//
#include <stdio.h>
+#include <time.h>
#include "chnlib.h"
int main(int argc, const char * argv[])
{
- FILE *fp;
+ FILE *fp, *outfile;
CHNLIB_String *line;
CHNLIB_UIPArray *root, *wordlist;
+ int files;
int i, i_max;
int level, recording;
+ time_t now;
+ struct tm *pnow;
+ char s[1024];
CHNLIB_Environment_SetCurrentWorkingDirectory(argv[0]);
return 0;
}
- fp = fopen(argv[1], "rb");
- if(fp == NULL){
- printf("fopen error. Abort.\n");
- return 1;
- }
-
+ //解析用リストの初期化
wordlist = CHNLIB_UIPArray_Initialize();
CHNLIB_UIPArray_AppendLast(&wordlist, 1, CHNLIB_String_Initialize("{"));
CHNLIB_UIPArray_AppendLast(&wordlist, 2, CHNLIB_String_Initialize("}"));
CHNLIB_UIPArray_AppendLast(&wordlist, 3, CHNLIB_String_Initialize("//"));
- root = CHNLIB_UIPArray_Initialize();
- for(;;){
- line = CHNLIB_ReadLine(fp);
- if(line == NULL){
- break;
- }
- CHNLIB_UIPArray_GetSeparatedStringByUIPArray(&root, wordlist, line);
- }
+ outfile = fopen("out.txt", "wb");
- fclose(fp);
+ now = time(NULL);
+ pnow = localtime(&now);
+ strftime(s, sizeof(s), "-%G/%m/%d %T 現在\n", pnow);
+ fputs(s, outfile);
- i_max = CHNLIB_UIPArray_GetNumberOfDatas(root);
- fp = fopen("out.txt", "wb");
-
- recording = False;
- level = 0;
- for(i = 0; i < i_max; i++){
- switch(CHNLIB_UIPArray_GetData32ByIndex(root, i)){
- case 1: //"{"
- if(level == 0){
- fprintf(fp, "***%s\n", CHNLIB_String_GetReferencePointerOfCString(CHNLIB_UIPArray_GetPointerByIndex(root, i - 1)));
- recording = True;
- } else if(recording){
- recording = False;
- fprintf(fp, "\n");
- }
- level++;
- break;
- case 2: //"}"
- if(recording){
- recording = False;
- fprintf(fp, "\n");
+ for(files = 1; files < argc; files++){
+ fp = fopen(argv[files], "rb");
+ if(fp != NULL){
+ //ファイルの読み込み
+ fprintf(outfile, "**%s\n", CHNLIB_Environment_GetFilenameFromPath(argv[files]));
+ root = CHNLIB_UIPArray_Initialize();
+ for(;;){
+ line = CHNLIB_ReadLine(fp);
+ if(line == NULL){
+ break;
}
- level--;
- break;
- case 3: //"//"
- if(recording){
- i++;
- fprintf(fp, "%s\n", CHNLIB_String_GetReferencePointerOfCString(CHNLIB_UIPArray_GetPointerByIndex(root, i)));
+ CHNLIB_UIPArray_GetSeparatedStringByUIPArray(&root, wordlist, line);
+ }
+ fclose(fp);
+
+ i_max = CHNLIB_UIPArray_GetNumberOfDatas(root);
+ recording = False;
+ level = 0;
+ for(i = 0; i < i_max; i++){
+ switch(CHNLIB_UIPArray_GetData32ByIndex(root, i)){
+ case 1: //"{"
+ if(level == 0){
+ fprintf(outfile, "***%s\n", CHNLIB_String_GetReferencePointerOfCString(CHNLIB_UIPArray_GetPointerByIndex(root, i - 1)));
+ recording = True;
+ } else if(recording){
+ recording = False;
+ fprintf(outfile, "\n");
+ }
+ level++;
+ break;
+ case 2: //"}"
+ if(recording){
+ recording = False;
+ fprintf(outfile, "\n");
+ }
+ level--;
+ break;
+ case 3: //"//"
+ if(recording){
+ i++;
+ fprintf(outfile, "%s\n", CHNLIB_String_GetReferencePointerOfCString(CHNLIB_UIPArray_GetPointerByIndex(root, i)));
+ }
+ break;
}
- break;
+ }
+
+ CHNLIB_UIPArray_FreeSelectedAll(&root);
+ } else{
+ printf("Can't open file [%s].\n", argv[files]);
}
}
- fflush(fp);
- fclose(fp);
+ fclose(outfile);
+
return 0;
}