Trik untuk menggabungkan beberapa file txt dalam satu memo
Jika anda sering menggunakan Aplikasi Word maka ada satu fungsi untuk menempatkan file-file yang dipilih pada lembar kerja yang sedang kita buka, yaitu terdapat pada menu Insert > File, cara ini pun dapat kita buat sendiri. Untuk itu ikuti langkah-langkah berikut ini.
Siapkan aplikasi baru , lalu tambahkan komponen Memo ,Button, dan OpenDialog. Yang kira-kira formnya akan seperti ini
Gbr. Tampilan awal
Lalu setelah itu masukan kode berikut.
procedure TForm1.FormCreate(Sender: TObject);
begin
Opendialog1.Options:=[ofHideReadOnly,ofAllowMultiSelect,ofEnableSizing];
Memo1.ScrollBars:=ssBoth;
Button1.Caption:=’Buka file’;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i : Integer ;
TempMemo1, TempMemo2 : TStringList ;
begin
Memo1.Clear;
try
Screen.Cursor:=crHourglass;
TempMemo1:=TStringList.Create;
TempMemo2:=TStringList.Create;
if Opendialog1.Execute then
begin
with Opendialog1, TempMemo1 do
for i:=0 to Files.Count-1 do
begin
Clear;
LoadFromFile(Files.Strings[i]);
TempMemo2.Text:= TempMemo2.Text+#10+#13+text;
end;
end;
Finally
Screen.Cursor:=CrDefault;
Memo1.text:= TempMemo2.Text;
TempMemo1.Free;
TempMemo2.Free;
end;
end;
Pada procedure Tform1.FormCreate diatas sebenarnya dapat anda atur propertynya pada saat design time, jadi procedure ini sifatnya optional boleh dipakai boleh juga tidak. Sekarang mari kita jalankan program ini.
Pertama anda akan diminta untuk membuka file, lalu pilihlah file-file yang ingin anda buka
Gbr. Dialog untuk memilih file
Gbr. Hasil dari file-file yang dibuka
Membulatkan angka
Kadang kala dalam hasil operasi Floating terdapat banyak sekali angka yang mungkin akan mengganggu. Tutorial berikut ini akan disampaikan beberapa operasi pembulatan angka.
1. Fungsi trunc
Dengan fungsi ini sebuah bilangan yang rentetan angka dibelakang komanya banyak akan dihilangkan. Contoh anda mempunyai bilangan 12,11542245 maka dengan fungsi ini akan menghasilkan 12
Fungsi trunc( X : Real ): Integer ;
BX:= Trunc(12,11542245);
Maka BX akan menghasilkan 12
2. Fungsi Format
function Bulatkan( BilanganDesimal :Real ;
BildiBlkngKoma : Integer ): String ;
var
s : String ;
begin
Str(BilanganDesimal:20:BildiBlkngKoma,s);
result:=Trim(s);
end;
Keterangan
fungsi str adalah fungsi bawaan dari delphi, yang berfungsi untuk mengatur tampilan bilangan yang terletak di belakang koma.
BilanganDesimal : Bilangan yang akan dibulatkan
BildiBlkngKoma : Jumlah bilangan dibelakang koma yang kita inginkan
Fungsi trim pada kode diatas ini kita gunakan untuk menghilangkan karakter kosong.
Contoh :
Bulatkan( 456.2123546, 3);
Maka bilangan yang dihasilkan adalah 456.212
Memecah tanggal dan waktu
Apabila anda ingin memecahkan tanggal dan waktu maka fungsi decodeDateTime sangat berguna untuk anda, dibawah ini adalah contoh kodenya.
procedure TForm1.Button1Click(Sender: TObject);
var
Thn, Bln, Hr, Jam, Mnt, Dtk, Sdtk : Word ;
begin
DecodeDate(Now, Thn, Bln, Hr);
DecodeTime(Now, Jam, Mnt, Dtk, sDtk );
ShowMessage(‘Milidetik : ‘+IntToStr(sDtk)+#10+#13+
‘Detik : ‘+IntToStr(Dtk)+#10+#13+
‘Menit : ‘+IntToStr(Mnt)+#10+#13+
‘Jam : ‘+IntToStr(Jam)+#10+#13+
‘Hari : ‘+IntToStr(Hr)+#10+#13+
‘Bulan : ‘+IntToStr(Bln)+#10+#13+
‘Tahun : ‘+IntToStr(Thn));
end;
Cara memilih tanggal yang jatuh pada hari tertentu
Baris kode yang akan kita bahas kali ini cukup unik. Karena procedure berikut ini akan menghasilkan sebuah daftar tanggal tanggal yang dilalui oleh hari tertentu. Berikut ini langkah-langkahnya.
Pertama-tama kita siapkan aplikasi baru dengan sebuah ListBox, Button, Edit, label, dan DateTimePicker, yang kira-kira formnya akan seperti ini.
Gbr. Form Daftar hari
Kemudian tulis kode dibawah ini.
implementation
{$R *.dfm}
Uses DateUtils ;
Procedure PilihHariDlmBulan ( NmHari : String ; Bulan : TDateTime ; List : TStrings );
function NamaHari( Tanggal : TDAteTime ): String ;
var
Hari: array[1..7] of string;
begin
Hari[1] := ‘Minggu’;
Hari[2] := ‘Senin’;
Hari[3] := ‘Selasa’;
Hari[4] := ‘Rabu’;
Hari[5] := ‘Kamis’;
Hari[6] := ‘Jumat’;
Hari[7] := ‘Sabtu’;
Result:=Hari[DayOfWeek(Tanggal)];
end;
var
hari, jmlHari : integer ;
s : string ;
Tahun, iBulan, iHari : Word ;
begin
decodeDate(Bulan, Tahun, ibulan, ihari);
JmlHari:=DaysInAMonth(Tahun, iBulan);
for hari:=1 to JmlHari do
begin
s:=IntToStr(hari)+’/’+IntToStr(ibulan)+’/’+IntToStr(tahun);
// disini kita akan menggunakan fungsi Namahari
if (Uppercase(NamaHAri(StrToDate(s)))= Uppercase(NmHAri)) then
list.Add(s) else continue;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
PIlihHariDlmBulan(Edit1.Text, DateTimePicker1.Date, Listbox1.Items);
end;
Sekarang coba anda jalankan program dan isikan nama hari pada Edit1 lalu pilih tanggal pada DateTimePicker1 setelah itu tekanlah tombol button1, maka pada listbox1 anda akan mendapatkan daftar tanggal-tanggal yang dilalui hari tertentu dan pada bulan tertentu yang sudah diisikan pada Edit1.
Gbr. Daftar tanggal yang dilalui hari tertentu dalam sebulan
Lalu bagaimana apabila kita ingin melihat daftar hari dalam satu tahun ?. Untuk melihat daftar hari dalam setahun anda harus menambahkan procedure baru setelah Procedure PilihHariDlmBulan. Berikut ini kode lengkapnya.
Procedure PilihHariDlmBulan ( NmHari : String ; Bulan : TDateTime ; List : TStrings );
Var
Bla…bla…bla…
// var nya sama
begin
Bla…bla…bla…
End;
Procedure PilihHariDlmTAhun ( NmHari : String ; Tahun : word ; List : TStrings );
var
Bulan : Tdatetime ;
i : Integer ;
begin
List.Clear;
for i:=1 to 12 do
begin
Bulan:=StrToDAte(‘1/’+IntToStr(i)+’/’+IntTOStr(tahun));
PilihHariDlmBulan( NmHari, Bulan, list);
end;
end;
contoh penggunaanya adalah sebagai berikut.
procedure TForm1.Button1Click(Sender: TObject);
begin
PIlihHariDlmTahun(Edit1.text, 2009, Listbox1.Items);
end;
Gbr. Daftar tanggal yang jatuh pada hari sabtu dalam satu tahun
Menghitung jumlah kata
Apabila anda ingin mengetahui jumlah kata yang terdapat pada sebuah memo maka fungsi ini akan cukup berguna untuk anda. Untuk memulainya kita bisa memanfaatkan form cekteks lalu membuang komponen TEdit. Lalu masukan kode dibawah ini :
Function JmlKata( Teks : String ): Integer ;
var
i : Integer ;
s : String ;
jml : Integer ;
begin
jml:=0;
s:=TRim(teks);
for i:=1 to length(s) do
begin
if ((copy(s, i, 1)=’ ‘) or (copy(s, i,2)=’ ‘)) then
jml:=jml+1;
end;
result:=jml+1;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(‘Jumlah kata pada memo1 adalah ‘+
intTostr(jmlKata(memo1.Text))+’ kata’);
end;
Komentar