Sample code for 30+ languages & platforms
Pascal (Lazarus/Delphi)

Using Chilkat StringBuilder to Avoid Large Strings

See more uncategorized Examples

Some programming languages can have limitations on string lengths, or it can be inefficient to return large strings back to the application, only to be passed back into Chilkat in a subsequent method call.

For Chilkat functions that return a string where the returned string can potentially be very large, there is typically the same function with the name ending in "Sb", where the returned string is deposited into the last argument. This allows for the string remain within an object, and thus never marshalled to/from the application.

Chilkat Pascal (Lazarus/Delphi) Downloads

Pascal (Lazarus/Delphi)
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.Http,
  Chilkat.StringBuilder,
  Chilkat.JsonObject;

// ---------------------------------------------------------------------------

procedure RunDemo;
var
  success: Boolean;
  http: THttp;
  json: TJsonObject;
  jsonStr: string;
  sb: TStringBuilder;

begin
  success := False;

  http := THttp.Create;
  json := TJsonObject.Create;

  //  This is the potentially inefficient way of getting JSON from a URL and loading it into a Chilkat JsonObject.
  //  It gets the string directly..
  jsonStr := http.QuickGetStr('https://www.chilkatsoft.com/helloWorld.json');
  success := json.Load(jsonStr);

  //  This is the more efficient method if the JSON is potentially large
  sb := TStringBuilder.Create;
  success := http.QuickGetSb('https://www.chilkatsoft.com/helloWorld.json',sb);
  success := json.LoadSb(sb);


  http.Free;
  json.Free;
  sb.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.