DataFlex
DataFlex
Download an FTP File as Text with a Charset
See more FTP Examples
Demonstrates the Chilkat Ftp2.GetRemoteFileTextC method, which downloads a remote file, decodes the bytes using a named charset, and returns the text. The first argument is the remote filename and the second is the charset. A byte-order mark for the selected encoding is recognized and omitted.
Background: This is the encoding-aware way to read a remote text file: you name the charset (
utf-8, iso-8859-1, and so on) so multibyte and accented characters decode correctly, and a leading BOM is stripped automatically. Prefer it over GetRemoteFileTextData whenever the file's encoding is known, which is almost always.Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoFtp
String sFileText
String sTemp1
Boolean bTemp1
Move False To iSuccess
// Demonstrates the Ftp2.GetRemoteFileTextC method, which downloads a remote file, decodes the
// bytes using a named charset, and returns the text. The 1st argument is the remote filename
// and the 2nd is the charset.
Get Create (RefClass(cComChilkatFtp2)) To hoFtp
If (Not(IsComObjectCreated(hoFtp))) Begin
Send CreateComObject of hoFtp
End
Set ComHostname Of hoFtp To "ftp.example.com"
Set ComUsername Of hoFtp To "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.
Set ComPassword Of hoFtp To "myPassword"
Get ComConnect Of hoFtp To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoFtp To sTemp1
Showln sTemp1
Procedure_Return
End
// Download a UTF-8 text file. A byte-order mark for the selected encoding is recognized and
// omitted from the returned text.
Get ComGetRemoteFileTextC Of hoFtp "public_html/readme.txt" "utf-8" To sFileText
Get ComLastMethodSuccess Of hoFtp To bTemp1
If (bTemp1 = False) Begin
Get ComLastErrorText Of hoFtp To sTemp1
Showln sTemp1
Procedure_Return
End
Showln sFileText
Get ComDisconnect Of hoFtp To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoFtp To sTemp1
Showln sTemp1
Procedure_Return
End
End_Procedure