Home > Delphi, Did You Know > Convert.exe Like ?

Convert.exe Like ?


Pada artikel sebelumnya, dibahas tentang bagaimana memanfaatkan tool convert.exe untuk mengubah format file DFM, baik dari text ke binary maupun sebaliknya. Nah pada artikel ini akan dibahas bagaimana melakukan konversi tersebut dengan menggunakan Delphi, tentu saja masih dengan fasilitas yang sederhana dan minim.

Deteksi Jenis Format

Nah karena format file DFM ada 2 (dua), yaitu text dan binary, maka tool harus mampu melakukan pendeteksian jenis format file yang diberikan dan kemudian melakukan konversi ke format yang sesuai, apakah text->binary atau binary-text.

Format binary ditandai dengan 3 byte $FF $0A $00 pada awal file, sedangkan format text ditandai dengan 6 karakter ‘object’ pada awal file.

Fungsi Konversi

Untuk melakukan konversi text->binary, Delphi sudah menyediakan fungsi ObjectTextToBinary dan ObjectTextToResource, dan fungsi ObjectBinaryToText dan ObjectResourceToText untuk konversi binary->text.

Selengkapnya dapat disimak pada kode berikut:

program MyConvert;

{$APPTYPE CONSOLE}

uses
  SysUtils, Classes;

var
  FileName : string;
  ObjDFM  : TMemoryStream;
  ObjOut  : TMemoryStream;

  IsBinary : Boolean;
  Header: array[0..2] of Byte;

begin
  FileName := ParamStr(1);

  ObjDFM := TMemoryStream.Create;
  ObjDFM.LoadFromFile(FileName);
  ObjDFM.Position := 0;
  ObjDFM.Read(Header, SizeOf(Header));
  IsBinary := (Header[0] = $FF) and (Header[1] = $0A) and (Header[2] = $00);

  ObjDFM.Seek(0, soFromBeginning);
  ObjOut := TMemoryStream.Create;
  if IsBinary then
    ObjectResourceToText(ObjDFM, ObjOut)
  else
    ObjectTextToResource(ObjDFM, ObjOut);

  ObjOut.Position := 0;
  ObjOut.SaveToFile(FileName);

  ObjOut.Free;
  ObjDFM.Free;
end.

Catatan: kode diatas masih sederhana, bersifat ‘proof of concept’ aja, belum ada error / exception handling. Hal ini untuk mempermudah pemahaman dan mempersingkat kode. 🙂

Convert.exe Like ?

Nah, tool yang sudah kita buat ini apakah secara ‘fungsi’ sama dengan Convert.exe atau bukan, Anda sendiri lah yang memutuskan. Yang jelas saya hanya ingin menunjukkan saja bahwa pembuatan tool tersebut relatif cukup mudah.

Salam.

Categories: Delphi, Did You Know
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: