Pascal (Lazarus/Delphi)
Pascal (Lazarus/Delphi)
Append Bytes to a Remote FTP File (BinData)
See more FTP Examples
Demonstrates the Chilkat Ftp2.AppendFileBd method, which appends the bytes in a BinData to a remote file. The first argument is the remote filename and the second is the BinData. No conversion is performed.
Background: The binary append: add in-memory bytes to the end of a remote file without an intermediate local file and without any encoding or line-ending translation. It is the right choice for growing a binary file — concatenating captured data, for instance — where exact bytes matter.
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.Ftp2,
Chilkat.BinData;
// ---------------------------------------------------------------------------
procedure RunDemo;
var
success: Boolean;
ftp: TFtp2;
bd: TBinData;
begin
success := False;
// Demonstrates the Ftp2.AppendFileBd method, which appends the bytes in a BinData to a remote
// file. The 1st argument is the remote filename and the 2nd is the BinData.
ftp := TFtp2.Create;
ftp.Hostname := 'ftp.example.com';
ftp.Username := 'myFtpLogin';
// Normally you would not hard-code the password in source. You should instead obtain it
// from an interactive prompt, environment variable, or a secrets vault.
ftp.Password := 'myPassword';
success := ftp.Connect();
if (success = False) then
begin
WriteLn(ftp.LastErrorText);
Exit;
end;
bd := TBinData.Create;
success := bd.LoadFile('qa_data/more_data.bin');
if (success = False) then
begin
WriteLn(bd.LastErrorText);
Exit;
end;
success := ftp.AppendFileBd('data/collected.bin',bd);
if (success = False) then
begin
WriteLn(ftp.LastErrorText);
Exit;
end;
WriteLn('Appended ' + bd.NumBytes + ' bytes.');
success := ftp.Disconnect();
if (success = False) then
begin
WriteLn(ftp.LastErrorText);
Exit;
end;
ftp.Free;
bd.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.