啥都不说,直接上代码

*******  如果无法链接FTP,可能需要往表SAPFTP_SERVERS加入IP地址和端口(21)即可

DATA:p_host   TYPE char64  VALUE 'IP', "IP
p_uname TYPE char30 VALUE 'username' , "用户名称
p_pwd TYPE char30 VALUE 'password' . "用户密码 DATA:dest LIKE rfcdes-rfcdest VALUE 'SAPFTP',
compress TYPE c VALUE 'N'. DATA:hdl TYPE i,
key TYPE i VALUE 26101957,
slen TYPE i,
cmd(80) TYPE c VALUE 'cd /文件夹/', "ftp的操作 具体可以百度
blen TYPE i. DATA:lv_file(40). "存放文件名 DATA:BEGIN OF result OCCURS 0,
line(100) TYPE c,
END OF result. DATA:BEGIN OF ls_line,
line(2000),
END OF ls_line,
lt_line LIKE TABLE OF ls_line. DATA:i_bintab TYPE w3mimetabtype . slen = strlen( p_pwd ). * "获取加密密码 保存到P_PWD
CALL FUNCTION 'HTTP_SCRAMBLE'
EXPORTING
source = p_pwd
sourcelen = slen
key = key
IMPORTING
destination = p_pwd. * 连接ftp服务器
CALL FUNCTION 'FTP_CONNECT'
EXPORTING
user = p_uname
password = p_pwd
host = p_host
rfc_destination = dest
IMPORTING
handle = hdl. "连接的句柄 CALL FUNCTION 'FTP_COMMAND'
EXPORTING
handle = hdl
command = cmd "进入指定ftp目录
compress = compress
TABLES
data = result
EXCEPTIONS
command_error = 1
tcpip_error = 2.
******* LOOP AT result.
******* WRITE AT / result-line.
******* ENDLOOP. lv_file = '*******.txt'. "ftp目录下的文件名(只支持*.txt OR *.dat)
* 解析*.txt 文件
"1.在代码中由于有中文,所以需先得到BIN的内表
"2.使用SCMS_BINARY_TO_TEXT把BIN的二进制值转换为GB2312
CALL FUNCTION 'FTP_SERVER_TO_R3'
EXPORTING
handle = hdl
fname = lv_file
* character_mode = 'X'
IMPORTING
blob_length = blen
TABLES
blob = i_bintab
* text = lt_line
EXCEPTIONS
tcpip_error = 1
command_error = 2
data_error = 3
OTHERS = 4.
"转换BIN内表数据
CALL FUNCTION 'SCMS_BINARY_TO_TEXT'
EXPORTING
input_length = blen
encoding = '8400' "4110:UTF8,8400:GB2312
IMPORTING
output_length = blen
TABLES
binary_tab = i_bintab
text_tab = lt_line
EXCEPTIONS
failed = 1
OTHERS = 2. CALL FUNCTION 'FTP_DISCONNECT'
EXPORTING
handle = hdl. CALL FUNCTION 'RFC_CONNECTION_CLOSE'
EXPORTING
destination = dest
EXCEPTIONS
OTHERS = 1.

最新文章

  1. 剖析JavaScript函数作用域与闭包
  2. 如何分割一个utf8字符串(保证单个汉字的完整性)
  3. JAVA通过C3P0连接数据库
  4. Html5最简单的游戏Demo——Canvas绘图的弹弹球
  5. Qt for Android 程序禁止屏幕旋转
  6. Android开发环境搭建(2015年8月更新)
  7. [Angular 2] Passing data to components with 'properties'
  8. 常用cl命令参数解释
  9. HTML5根据浏览器获取经度和纬度(百度API)
  10. C -小晴天老师系列——竖式乘法
  11. 最近做了一个通达OA的大料:20170905最新版本破解可改单位名称,无限制安装
  12. Android01-布局篇
  13. Android 初了解
  14. 【树状数组】区间出现偶数次数的异或和(区间不同数的异或和)@ codeforce 703 D
  15. storcli 简易使用介绍
  16. HashMap jdk1.8 jdk1.7 put改动
  17. slice()和subString()
  18. 大数据的乘法实现——C语言
  19. MP实战系列(六)之代码生成器讲解
  20. Socket网络编程--聊天程序(7)

热门文章

  1. 安装torch_scatter,torch-sparse,torch-cluster,torch-spline-conv,torch-geometric
  2. Redis入门级简单安装使用
  3. 记一次SpringBoot整合WebSocket 找不到ServerEndpointExporter类的问题
  4. Linux docker 安装nginx 配置ssl证书
  5. 基于HttpWebRequest,HttpWebResponse发起请求
  6. vue2和vue3配置全局自定义参数及vue3动态绑定ref
  7. socket的客户端和服务端(Windows控制台程序)
  8. OS-lab4
  9. Python的入门学习Day 19~21——form”夜曲编程“
  10. boost.python编辑,以及c++api的python封装