Pascal (Lazarus/Delphi)
Pascal (Lazarus/Delphi)
Convert String to GSM 03.38
See more HTML-to-XML/Text Examples
Demonstrates how to convert a string to the GSM character set. For more information about the GSM character set, see GSM Character SetNote: This example requires Chilkat v9.5.0.79 or greater. Support for the GSM character set was added in v9.5.0.79.
Chilkat Pascal (Lazarus/Delphi) Downloads
program ChilkatDemo;
// Demonstrates using the Chilkat Pascal wrapper via the C bridge DLL.
// Builds as a console application under Lazarus (FPC) or Delphi.
{$IFDEF FPC}
{$MODE DELPHI}
{$ENDIF}
{$APPTYPE CONSOLE}
uses
{$IFDEF UNIX}
cthreads,
{$ENDIF}
SysUtils,
CkDllLoader,
Chilkat.BinData;
// ---------------------------------------------------------------------------
procedure RunDemo;
var
success: Boolean;
s: string;
bdGsm: TBinData;
begin
success := False;
// Demonstrates how to convert a string to the GSM character set byte representation.
s := 'support@chilkatsoft.com, {abc}';
// In the above string the a-z letters have the same 1-byte values in the GSM character set.
// The '@' character is the 0x00 byte in GSM.
// The curly brace chars are 2-bytes each in GSM -- each beginning with the 0x1B escape char.
// The '.', ' ', and ',' are the same in GSM as us-ascii.
// Let's convert to GSM.
// bdGsm will contain the GSM bytes.
bdGsm := TBinData.Create;
// Append the string to bdGsm. The 2nd arg "gsm" tells AppendString to
// convert the incoming string to the gsm byte representation.
success := bdGsm.AppendString(s,'gsm');
// Let's examine what we have in hex:
WriteLn(bdGsm.GetEncoded('hex'));
// The result is: 737570706F7274006368696C6B6174736F66742E636F6D2C201B286162631B29
// Save the GSM bytes to a file.
success := bdGsm.WriteFile('qa_output/gsm.txt');
bdGsm.Free;
end;
// ---------------------------------------------------------------------------
begin
try
RunDemo;
except
on E: Exception do
WriteLn('Unhandled exception: ', E.ClassName, ': ', E.Message);
end;
WriteLn;
{$IFDEF MSWINDOWS}
WriteLn('Press Enter to exit...');
ReadLn;
{$ENDIF}
end.