//int searchPageName ( char *page_name );
//return : 頁面代碼 
//功能說明 : 輸入頁面名稱，回傳頁面代碼。

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<ctype.h>
#include<string.h>

#define MAX 20

int insert();
int list();
int search();

int index=0;
struct text
    {
        char page_id[5];
        char page_name[MAX];
    };
    struct text *ptr;
    struct text page[50];
    
int main()
{
    FILE *fptr;    
    char option;

    do
    {
        printf("\n1=>增加一筆資料\n");
        printf("2=>列出所有資料\n");
        printf("3=>搜尋資料(輸入PageName)\n");
        printf("4=>結束\n");
        
        printf("選擇一項目：\n");
        scanf("%c",&option);
        switch(option)
        {
            case '1': insert();
                break;
            case '2': list();
                break;
            case '3': search();
                break; 
            case '4': printf("Bye!Bye!\n");
                return 0;
                break;
            default : printf("Option Error!!\n"); 
        }
    }while(option!=3);

    system("PAUSE");
    
}

int insert()
{

    FILE *fptr;    
    char filename[20];
    char answer;
    printf("請輸入欲寫入檔名：\n");    //insert filename
    scanf("%s",&filename);
    fptr = fopen(filename, "w");

    if (index>=50)
    {
        //SIZE+=5;
        printf("空間已滿\n");
    }
    else
    {
        //insert id&name
         do
          {
            printf("輸入資料\n");
            printf("Page ID ：\n");
            scanf("%s",page[index].page_id);
            printf("Page Name ：\n");
            scanf("%s",page[index].page_name);
            index++;

        //詢問是否繼續輸入 
            do
            {    
                printf("繼續輸入(Y/N)?\n");
                answer = getche();
                printf("\n---------------------------------\n");
            }while(toupper(answer) != 'Y' && toupper(answer) != 'N');
         }    while(toupper(answer)=='Y');
         //insert file        
            fwrite(page,sizeof(struct text),index,fptr);        
    }    
    
    fclose(fptr);                    
}

int list()
{
    FILE *fptr;    
    char filename[20];
    printf("請輸入欲讀取檔名：\n");    //list filename
    scanf("%s",&filename);
    fptr = fopen(filename, "r"); 
    fread(page,sizeof(struct text),index,fptr);    
    
    int i;
    printf("---listing Data---\n");
    for(i=0;i<=index;i++)
    {
        printf("%s\t%s\n",page[i].page_id,page[i].page_name);
    }
    
    fclose(fptr);                        //closefile
}

int search()
{
/*    FILE *fptr;    
    char filename[20];
    printf("請輸入欲讀取檔名：\n");    //search filename
    scanf("%s",&filename);
    fptr = fopen(filename, "r"); 
    fread(page,sizeof(struct text),index,fptr);    
*/    
    char search_name[MAX];
    int length,i,j;
    printf("請輸入欲搜尋Page_Name:\n");
    scanf("%s",search_name);
    length=strlen(search_name);
    int size=50;
    
    while(scanf("%s",search_name)==1)
    {
        for(i=0;i<size-1;i++)
        {
            int len=strlen(page[i].page_name);
            if(length!=len)
            {
                continue;
            }
            else if(strcmp(search_name,page[i].page_name)!=0)
            {
                continue;        
            }
            else
            {
                printf("Page_ID為 %s\n",page[i].page_id);
                break;
            }
            
        }    
    }
    
}