Kamus on Terminal ( C Version )
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”.
Yah mungkin W harus coba untuk menulis program ini ke dalam bahasa C, dan ini dia kode yang W tulis dengan bahasa C.
#include
#include
#include
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.