Sample code for 30+ languages & platforms
Tcl

FTP Download Text File to a Stream

See more FTP Examples

Demonstrates how to FTP download a text file to a Chilkat stream.

Note: This example requires Chilkat v9.5.0.67 or greater.

Chilkat Tcl Downloads

Tcl

load ./chilkat.dll

set success 0

# This example assumes the Chilkat FTP2 API to have been previously unlocked.
# See FTP2 Unlock Sample for sample code.

set ftp [new_CkFtp2]

CkFtp2_put_Hostname $ftp "www.my-ftp-server.com"
CkFtp2_put_Username $ftp "mFtpLogin"
CkFtp2_put_Password $ftp "myFtpPassword"
CkFtp2_put_AuthTls $ftp 1
CkFtp2_put_Passive $ftp 1

# Connect and login to the FTP server using TLS.
set success [CkFtp2_Connect $ftp]
if {$success != 1} then {
    puts [CkFtp2_lastErrorText $ftp]
    delete_CkFtp2 $ftp
    exit
}

set streamObj [new_CkStream]

# Indicate the charset of the incoming data.
CkStream_put_StringCharset $streamObj "utf-8"

# Create a task to do the FTP download.
# t is a CkTask
set t [CkFtp2_GetFileToStreamAsync $ftp "lines.txt" $streamObj]
if {[CkFtp2_get_LastMethodSuccess $ftp] != 1} then {
    puts [CkFtp2_lastErrorText $ftp]
    delete_CkFtp2 $ftp
    delete_CkStream $streamObj
    exit
}

# Start the task in a background thread.
CkTask_Run $t

# Read the incoming text data using any of the streamObj Read methods.
# This example will read line-by-line.

while {[CkStream_get_EndOfStream $streamObj] != 1} {
    set line [CkStream_readToCRLF $streamObj]
    if {[CkStream_get_LastMethodSuccess $streamObj] == 1} then {
        puts "$line"
    }

}
delete_CkTask $t

puts "Success."

delete_CkFtp2 $ftp
delete_CkStream $streamObj