Konversi angka menjadi string

Jika Anda tidak ingin mencetak secara langsung melainkan menggabungkan sejumlah variabel menjadi satu string utuh, Pascal menyediakan tiga metode implementasi utama:

Penggabungan dengan fungsi konversi khusus

***ToStr + penggabungan string dengan operator +

Gunakan fungsi konversi khusus untuk mengubah tipe data tunggal satu per satu, lalu gabungkan string dengan operator +:

uses SysUtils;

var
  MyInt: Integer;
  MyStr: string;
begin
  MyInt := 123;
  MyStr := 'My int number is ' + IntToStr(MyInt) + ', and the value of Pi is ' + FloatToStr(Pi);
end;Code language: JavaScript (javascript)

Fungsi pendukung yang sering dipakai (semua ada di unit SysUtils):

  • Angka ke string: IntToStr, FloatToStr, FormatFloat (format bilangan pecahan khusus)
  • String kembali ke angka: StrToInt, StrToIntDef, StrToFloat

Contoh lengkap yang bisa dijalankan

{$ifdef FPC} {$mode objfpc}{$H+}{$J-} {$endif}
{$ifdef MSWINDOWS} {$apptype CONSOLE} {$endif}

uses SysUtils;

var
  MyInt: Integer;
  MyStr: string;
begin
  MyInt := 180;
  MyStr := 'My int number is ' + IntToStr(MyInt) + ', and the value of Pi is ' + FloatToStr(Pi);
  WriteLn(MyStr);
end.Code language: PHP (php)
Kelebihan
  1. Sangat fleksibel, fungsi terpisah mencakup hampir semua tipe data seperti bilangan bulat, pecahan, tanggal, dll.;
  2. Fungsi konversi balik tersedia lengkap, sangat praktis saat memproses string input pengguna.
Kekurangan

Jika jumlah variabel banyak, penggabungan berlapis dengan operator + akan membuat kode panjang dan sulit dibaca.


Fungsi Format

Format (mirip fungsi sprintf pada bahasa C)

Sintaks Dasar

uses SysUtils;

var
  Res: string;
  MyInt: Integer;
  MyFloat: Double;
  MyString: string;
begin
  Res := Format('%d %.4f %s', [MyInt, MyFloat, MyString]);
end;Code language: JavaScript (javascript)
  • %d: penanda tempat bilangan bulat; %.4f: bilangan pecahan dengan 4 angka di belakang koma; %s: penanda tempat string
  • Parameter kedua adalah array konstanta yang mengisi penanda tempat secara berurutan

Contoh lengkap

{$ifdef FPC} {$mode objfpc}{$H+}{$J-} {$endif}
{$ifdef MSWINDOWS} {$apptype CONSOLE} {$endif}

uses SysUtils;

var
  Res: string;
  MyInt: Integer;
  MyFloat: Double;
  MyString: string;
begin

  // set value
  MyInt := 169;
  MyFloat := 0.618;
  MyString := 'foxdevelop.com';

  Res := Format('%d %.4f %s', [MyInt, MyFloat, MyString]);
  WriteLn(Res);
end.Code language: PHP (php)

Kelebihan

  1. Templat format terpisah dari data sehingga struktur rapi; untuk penerjemahan multi-bahasa perangkat lunak hanya perlu ubah string templat tanpa mengubah daftar variabel;
  2. Tidak ada logika rahasia dari kompiler. Anda bisa mendeklarasikan fungsi buatan sendiri dengan parameter variabel array of const untuk menggunakan ulang logika format ini dan meneruskan parameter ke fungsi Format untuk diproses secara asli.

Kekurangan

Kompiler tidak memvalidasi kesesuaian tipe variabel dengan penanda tempat saat kompilasi; jika tipe tidak cocok akan muncul pengecualian konversi EConvertError saat program berjalan (tidak menyebabkan kerusakan akses memori).


WriteStr

Simpan hasil output Write ke variabel string

Fungsi: perilakunya hampir sama dengan Write/WriteLn, namun tidak mencetak ke konsol melainkan menyimpan hasilnya ke variabel string target pertama:

var S: string;
begin
  WriteStr(S, 'Pi value: ', Pi:1:4);
end;Code language: JavaScript (javascript)

Contoh lengkap

{$ifdef FPC} {$mode objfpc}{$H+}{$J-} {$endif}
{$ifdef MSWINDOWS} {$apptype CONSOLE} {$endif}

uses SysUtils;

var S: string;
begin
  WriteStr(S, 'Pi value: ', Pi:1:4);
  WriteLn(S);
end.Code language: PHP (php)

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *