Sample code for 30+ languages & platforms
PureBasic

Download Text File into String Variable

See more FTP Examples

Download a text file directly into a string variable.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkFtp2.pb"

Procedure ChilkatExample()

    success.i = 0

    ; This example requires the Chilkat API to have been previously unlocked.
    ; See Global Unlock Sample for sample code.

    ftp.i = CkFtp2::ckCreate()
    If ftp.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkFtp2::setCkHostname(ftp, "ftp.someFtpServer.com")
    CkFtp2::setCkUsername(ftp, "myFtpUserAccount")
    CkFtp2::setCkPassword(ftp, "myFtpPassword")

    ; Set other possible settings...
    ; See http://www.cknotes.com/determining-ftp2-connection-settings/ 
    ; for more information about FTP connection settings.
    CkFtp2::setCkPassive(ftp, 1)
    CkFtp2::setCkAuthTls(ftp, 1)

    ; Connect and login to the FTP server.
    success = CkFtp2::ckConnect(ftp)
    If success <> 1
        Debug CkFtp2::ckLastErrorText(ftp)
        CkFtp2::ckDispose(ftp)
        ProcedureReturn
    EndIf

    ; Change to the remote directory where the existing file is located.
    success = CkFtp2::ckChangeRemoteDir(ftp,"junk")
    If success <> 1
        Debug CkFtp2::ckLastErrorText(ftp)
        CkFtp2::ckDispose(ftp)
        ProcedureReturn
    EndIf

    ; Download the contents of the remote file into a string variable.

    ; The GetRemoteFileTextData method assumes the remote file contains ANSI chars.
    ; To download text files containing non-ANSI text, such as utf-8, call GetRemoteFileTextC
    ; instead. (see below)
    fileContents.s = CkFtp2::ckGetRemoteFileTextData(ftp,"ansiText.txt")
    If CkFtp2::ckLastMethodSuccess(ftp) <> 1
        Debug CkFtp2::ckLastErrorText(ftp)
        CkFtp2::ckDispose(ftp)
        ProcedureReturn
    Else
        Debug fileContents
    EndIf

    ; To download a remote text file containing utf-8 chars, 
    ; call GetRemoteFileTextC and pass "utf-8" for the 2nd arg.  This tells
    ; Chilkat to interpret the incoming bytes according to the utf-8 character encoding.

    fileContents = CkFtp2::ckGetRemoteFileTextC(ftp,"utf8Text.txt","utf-8")
    If CkFtp2::ckLastMethodSuccess(ftp) <> 1
        Debug CkFtp2::ckLastErrorText(ftp)
        CkFtp2::ckDispose(ftp)
        ProcedureReturn
    Else
        Debug fileContents
    EndIf

    success = CkFtp2::ckDisconnect(ftp)


    CkFtp2::ckDispose(ftp)


    ProcedureReturn
EndProcedure