Pascal (Lazarus/Delphi)
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
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.