Sebelumnya setelah membuat program kamus, ada opsi yang akan ditambahkan yaitu opsi -a (untuk penambahan text ke dalam file dictionary). Namun tiba-tiba terlintas di pikiran W jika program ini W tambahin terus menerus kata-kata ke dalam file dictionary nya, besar kemungkinan akan membuat program di execute lebih lama karena besarnya file dictionary.
Masalah ini W tanya di forum-forum, gimana cara menyelesaikan masalah seperti ini, setelah begitu banyak solusi, yang paling banyak ngasih bantuan bilangnya gini “write in C”.
Masalah ini W tanya di forum-forum, gimana cara menyelesaikan masalah seperti ini, setelah begitu banyak solusi, yang paling banyak ngasih bantuan bilangnya gini “write in C”.
Yah mungkin W harus coba untuk menulis program ini ke dalam bahasa C, dan ini dia kode yang W tulis dengan bahasa C.
#include <stdlib.h> #include <stdio.h> #include <string.h> void helpMe() { printf("simple gkamus v0.1 Program ini menggunakan file \"gkamus-{en,id}.dict\" sebagai wordlist. Program ini tidak berhubungan dengan program gkamus, kecuali penggunaan kamus bawaan dari program gkamus. Lisensi \"gkamus-{en,id}.dict\", lihat file. Licensed (proudly) under GPL. Option: -i 'text'\t translate 'text' ke bahasa Indonesia (default). -e 'text'\t translate 'text' ke bahasa Indonesia. -a 'to:text:def'\t tambahkan 'text' ke dalam kamus, dengan 'def' sebagai penjelasan. ex: gk -a 'e:mv:move file' gk -a 'i:asik:fun' - -------------- ambo:\n"); exit(0); } int main(int argc , char *argv[]) { FILE *bFile; int bfSize=1024; char kamus[256]="/usr/share/gkamus/"; char file[]="gkamus-en.dict"; char find[100]; char *line; char *thatis; if(argc==2) { strcpy(find, argv[1]); } else if(argc==3) { if(strcmp(argv[1],"-e")==0){ strcpy(find, argv[2]); } else if(strcmp(argv[1], "-i")==0){ strcpy(file, "gkamus-id.dict"); strcpy(find, argv[2]); } } else{ helpMe(); } strcat (kamus, file); bFile=fopen(kamus, "r"); line = (char*) malloc (sizeof (char) * bfSize); if(line==NULL){ perror("memori error"); exit(2); } if(!bFile) { perror("Error");} else{ while(!feof(bFile)){ fgets(line, bfSize, bFile); thatis=strtok(line,"\t"); if(strcmp(thatis,find)==0){ printf("%s", strtok(NULL,"\t")); exit(0); } } fclose(bFile); } free(line); }
Program ini ditulis dengan standar librari jadi bisa digunakan di platform manapun.
0 comments:
Post a Comment