//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("3=>搜尋資料(輸入PageName)\n");
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);
}
int insert()
{
FILE *fptr;
char filename[20];
char answer;
printf("請輸入欲寫入檔名:\n"); //insert filename fptr
= fopen(filename
, "w");
if (index>=50)
{
//SIZE+=5;
}
else
{
//insert id&name
do
{
scanf("%s",page
[index
].
page_id); scanf("%s",page
[index
].
page_name); index++;
//詢問是否繼續輸入
do
{
answer = getche();
printf("\n---------------------------------\n"); //insert file
fwrite(page
,sizeof(struct text
),index
,fptr
); }
}
int list()
{
FILE *fptr;
char filename[20];
printf("請輸入欲讀取檔名:\n"); //list 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); }
}
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;
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;
}
}
}
}
Ly9pbnQgc2VhcmNoUGFnZU5hbWUgKCBjaGFyICpwYWdlX25hbWUgKTsKLy9yZXR1cm4gOiDpoIHpnaLku6PnorwgCi8v5Yqf6IO96Kqq5piOIDog6Ly45YWl6aCB6Z2i5ZCN56ix77yM5Zue5YKz6aCB6Z2i5Luj56K844CCCgojaW5jbHVkZTxzdGRpby5oPgojaW5jbHVkZTxzdGRsaWIuaD4KI2luY2x1ZGU8Y29uaW8uaD4KI2luY2x1ZGU8Y3R5cGUuaD4KI2luY2x1ZGU8c3RyaW5nLmg+CgojZGVmaW5lIE1BWCAyMAoKaW50IGluc2VydCgpOwppbnQgbGlzdCgpOwppbnQgc2VhcmNoKCk7CgppbnQgaW5kZXg9MDsKc3RydWN0IHRleHQKICAgIHsKICAgICAgICBjaGFyIHBhZ2VfaWRbNV07CiAgICAgICAgY2hhciBwYWdlX25hbWVbTUFYXTsKICAgIH07CiAgICBzdHJ1Y3QgdGV4dCAqcHRyOwogICAgc3RydWN0IHRleHQgcGFnZVs1MF07CiAgICAKaW50IG1haW4oKQp7CiAgICBGSUxFICpmcHRyOyAgICAKICAgIGNoYXIgb3B0aW9uOwoKICAgIGRvCiAgICB7CiAgICAgICAgcHJpbnRmKCJcbjE9PuWinuWKoOS4gOethuizh+aWmVxuIik7CiAgICAgICAgcHJpbnRmKCIyPT7liJflh7rmiYDmnInos4fmlplcbiIpOwogICAgICAgIHByaW50ZigiMz0+5pCc5bCL6LOH5paZKOi8uOWFpVBhZ2VOYW1lKVxuIik7CiAgICAgICAgcHJpbnRmKCI0PT7ntZDmnZ9cbiIpOwogICAgICAgIAogICAgICAgIHByaW50Zigi6YG45pOH5LiA6aCF55uu77yaXG4iKTsKICAgICAgICBzY2FuZigiJWMiLCZvcHRpb24pOwogICAgICAgIHN3aXRjaChvcHRpb24pCiAgICAgICAgewogICAgICAgICAgICBjYXNlICcxJzogaW5zZXJ0KCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAnMic6IGxpc3QoKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICczJzogc2VhcmNoKCk7CiAgICAgICAgICAgICAgICBicmVhazsgCiAgICAgICAgICAgIGNhc2UgJzQnOiBwcmludGYoIkJ5ZSFCeWUhXG4iKTsKICAgICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQgOiBwcmludGYoIk9wdGlvbiBFcnJvciEhXG4iKTsgCiAgICAgICAgfQogICAgfXdoaWxlKG9wdGlvbiE9Myk7CgogICAgc3lzdGVtKCJQQVVTRSIpOwogICAgCn0KCmludCBpbnNlcnQoKQp7CgogICAgRklMRSAqZnB0cjsgICAgCiAgICBjaGFyIGZpbGVuYW1lWzIwXTsKICAgIGNoYXIgYW5zd2VyOwogICAgcHJpbnRmKCLoq4vovLjlhaXmrLLlr6vlhaXmqpTlkI3vvJpcbiIpOyAgICAvL2luc2VydCBmaWxlbmFtZQogICAgc2NhbmYoIiVzIiwmZmlsZW5hbWUpOwogICAgZnB0ciA9IGZvcGVuKGZpbGVuYW1lLCAidyIpOwoKICAgIGlmIChpbmRleD49NTApCiAgICB7CiAgICAgICAgLy9TSVpFKz01OwogICAgICAgIHByaW50Zigi56m66ZaT5bey5ru/XG4iKTsKICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAgICAvL2luc2VydCBpZCZuYW1lCiAgICAgICAgIGRvCiAgICAgICAgICB7CiAgICAgICAgICAgIHByaW50Zigi6Ly45YWl6LOH5paZXG4iKTsKICAgICAgICAgICAgcHJpbnRmKCJQYWdlIElEIO+8mlxuIik7CiAgICAgICAgICAgIHNjYW5mKCIlcyIscGFnZVtpbmRleF0ucGFnZV9pZCk7CiAgICAgICAgICAgIHByaW50ZigiUGFnZSBOYW1lIO+8mlxuIik7CiAgICAgICAgICAgIHNjYW5mKCIlcyIscGFnZVtpbmRleF0ucGFnZV9uYW1lKTsKICAgICAgICAgICAgaW5kZXgrKzsKCiAgICAgICAgLy/oqaLllY/mmK/lkKbnubznuozovLjlhaUgCiAgICAgICAgICAgIGRvCiAgICAgICAgICAgIHsgICAgCiAgICAgICAgICAgICAgICBwcmludGYoIue5vOe6jOi8uOWFpShZL04pP1xuIik7CiAgICAgICAgICAgICAgICBhbnN3ZXIgPSBnZXRjaGUoKTsKICAgICAgICAgICAgICAgIHByaW50ZigiXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIpOwogICAgICAgICAgICB9d2hpbGUodG91cHBlcihhbnN3ZXIpICE9ICdZJyAmJiB0b3VwcGVyKGFuc3dlcikgIT0gJ04nKTsKICAgICAgICAgfSAgICB3aGlsZSh0b3VwcGVyKGFuc3dlcik9PSdZJyk7CiAgICAgICAgIC8vaW5zZXJ0IGZpbGUgICAgICAgIAogICAgICAgICAgICBmd3JpdGUocGFnZSxzaXplb2Yoc3RydWN0IHRleHQpLGluZGV4LGZwdHIpOyAgICAgICAgCiAgICB9ICAgIAogICAgCiAgICBmY2xvc2UoZnB0cik7ICAgICAgICAgICAgICAgICAgICAKfQoKaW50IGxpc3QoKQp7CiAgICBGSUxFICpmcHRyOyAgICAKICAgIGNoYXIgZmlsZW5hbWVbMjBdOwogICAgcHJpbnRmKCLoq4vovLjlhaXmrLLoroDlj5bmqpTlkI3vvJpcbiIpOyAgICAvL2xpc3QgZmlsZW5hbWUKICAgIHNjYW5mKCIlcyIsJmZpbGVuYW1lKTsKICAgIGZwdHIgPSBmb3BlbihmaWxlbmFtZSwgInIiKTsgCiAgICBmcmVhZChwYWdlLHNpemVvZihzdHJ1Y3QgdGV4dCksaW5kZXgsZnB0cik7ICAgIAogICAgCiAgICBpbnQgaTsKICAgIHByaW50ZigiLS0tbGlzdGluZyBEYXRhLS0tXG4iKTsKICAgIGZvcihpPTA7aTw9aW5kZXg7aSsrKQogICAgewogICAgICAgIHByaW50ZigiJXNcdCVzXG4iLHBhZ2VbaV0ucGFnZV9pZCxwYWdlW2ldLnBhZ2VfbmFtZSk7CiAgICB9CiAgICAKICAgIGZjbG9zZShmcHRyKTsgICAgICAgICAgICAgICAgICAgICAgICAvL2Nsb3NlZmlsZQp9CgppbnQgc2VhcmNoKCkKewovKiAgICBGSUxFICpmcHRyOyAgICAKICAgIGNoYXIgZmlsZW5hbWVbMjBdOwogICAgcHJpbnRmKCLoq4vovLjlhaXmrLLoroDlj5bmqpTlkI3vvJpcbiIpOyAgICAvL3NlYXJjaCBmaWxlbmFtZQogICAgc2NhbmYoIiVzIiwmZmlsZW5hbWUpOwogICAgZnB0ciA9IGZvcGVuKGZpbGVuYW1lLCAiciIpOyAKICAgIGZyZWFkKHBhZ2Usc2l6ZW9mKHN0cnVjdCB0ZXh0KSxpbmRleCxmcHRyKTsgICAgCiovICAgIAogICAgY2hhciBzZWFyY2hfbmFtZVtNQVhdOwogICAgaW50IGxlbmd0aCxpLGo7CiAgICBwcmludGYoIuiri+i8uOWFpeassuaQnOWwi1BhZ2VfTmFtZTpcbiIpOwogICAgc2NhbmYoIiVzIixzZWFyY2hfbmFtZSk7CiAgICBsZW5ndGg9c3RybGVuKHNlYXJjaF9uYW1lKTsKICAgIGludCBzaXplPTUwOwogICAgCiAgICB3aGlsZShzY2FuZigiJXMiLHNlYXJjaF9uYW1lKT09MSkKICAgIHsKICAgICAgICBmb3IoaT0wO2k8c2l6ZS0xO2krKykKICAgICAgICB7CiAgICAgICAgICAgIGludCBsZW49c3RybGVuKHBhZ2VbaV0ucGFnZV9uYW1lKTsKICAgICAgICAgICAgaWYobGVuZ3RoIT1sZW4pCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYoc3RyY21wKHNlYXJjaF9uYW1lLHBhZ2VbaV0ucGFnZV9uYW1lKSE9MCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgY29udGludWU7ICAgICAgICAKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHByaW50ZigiUGFnZV9JROeCuiAlc1xuIixwYWdlW2ldLnBhZ2VfaWQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgfSAgICAKICAgIH0KICAgIAp9