Friday, 26 April 2013

Program Sederhana untuk Replace String (Part I)

Kali ini kita akan membuat sebuah program yang akan menggantikan (Replace) kata-kata tertentu dengan kata-kata yang telah kita tentukan. Bahan yang diperlukan adalah sebuah file teks biasa yang akan diproses program. Buatlah dengan nama sesuka anda , contoh "ganti.txt" , yang panjang juga boleh . Pertama-tama kita gunakan < fstream > (file stream) untuk header yang menyediakan fungsi baca/tulis pada file :

#include <fstream> ... std::ifstream PanggilFile; PanggilFile.open("ganti.txt", std::ifstream::in);

ifstream (input file stream), untuk menampung file yang akan dibaca. Dengan menggunakan fungsi open dan diisi parameternya dengan benar, maka proses pertama program untuk membaca file telah sukses. Untuk nilai parameternya jika kita hanya menuliskan namafilenya saja (tanpa path lokasi yang jelas), maka program akan mencari file pada folder yang sama dengan program. Parameter kedua, adalah mode pemanggilan file, in (dari kata input) berarti file untuk dibaca. Beberapa mode yang dapat digunakan selain in (singkatan : input), out (output), binary, ate (at end), app (append), dan truncate (trunc).

Setelah file berhasil dipanggil, kita akan memeriksa setiap kata lalu menggantikan dengan kata yang ditentukan. Sebelum masuk ke dalam proses. Kita siapkan dulu kata-kata yang akan diganti. Kita dapat menggunakan 2 array dengan tipe data string, array pertama untuk kata kondisi dan array kedua untuk kata hasil. Perhatikan kode berikut:

... std::string kondisi[5]={"satu","dua","tiga","empat","lima"}; std::string hasil[5]={"one","two","three","four","five"}; ...

Tetapi kode tersebut tidak efisien, karena letak/posisi indeks pada kata kondisi dan hasil harus sama (contoh : kondisi[2] = "tiga", maka hasil[2] ="three" bukan "four"/"five") , dan ini adalah sebuah masalah jika kata yang ingin diganti sudah banyak. Maka dari itu kita harus membentuk struktur data yang rapi dengan membungkusnya menggunakan struct. Seperti pada kode berikut :

... //bykKey = Banyaknya Key const int bykKey = 5; struct sReplace { string Kondisi; string Hasil; } Kata[bykKey]; void initKata() { Kata[0].Kondisi = "satu"; Kata[0].Hasil = "one"; Kata[1].Kondisi = "dua"; Kata[1].Hasil = "two"; Kata[2].Kondisi = "tiga"; Kata[2].Hasil = "three"; Kata[3].Kondisi = "empat"; Kata[3].Hasil = "four"; Kata[4].Kondisi = "lima"; Kata[4].Hasil = "five"; } ...

Tambahkan banyaknya kata sesuai yang anda inginkan. Pada tulisan, selanjutnya kita tinggal memproses stringnya .

- krofz
 

back to top

back to top