前些天在群里讨论CSV文件上传时分隔符的问题, 当时写个两个事例程序, 可能以后有用, 还是在这里备注下吧.
1. 当上传的CSV文件是用逗号分隔时FM, TEXT_CONVERT_CSV_TO_SAP中指定分隔符不起作用, 下面的代码通过一个convert subroutine 将itab中的分隔符手工处理下, 再给这个FM用.
REPORT ztr0010.
TYPE-POOLS: abap.
CONSTANTS: c_separator VALUE ',',
c_replacer VALUE ';'.
DATA: v_source(255) VALUE '2000,"200,5","a""b"'.
PERFORM convert USING v_source.
WRITE v_source.
FORM convert CHANGING p_source.
DATA: lv_len TYPE i,
lv_c(1).
DATA: lv_flag TYPE abap_bool VALUE abap_true.
lv_len = STRLEN( p_source ).
DO lv_len TIMES.
lv_c = p_source+sy-index(1).
IF lv_c = '"'.
IF lv_flag = abap_true.
lv_flag = abap_false.
ELSE.
lv_flag = abap_true.
ENDIF.
ENDIF.
IF lv_flag = abap_true AND lv_c = c_separator.
p_source+sy-index(1) = c_replacer.
ENDIF.
ENDDO.
ENDFORM. "convert
2. 生成CSV文件时, 如果想让分隔符不是逗号, 可以参考下面的代码
REPORT ztr0009.
TYPE-POOLS:truxs.
DATA: BEGIN OF itab OCCURS 0,
vbeln LIKE vbap-vbeln,
posnr LIKE vbap-posnr,
END OF itab.
DATA:itab1 TYPE truxs_t_text_data,
wa_itab1 LIKE LINE OF itab1.
SELECT vbeln posnr INTO TABLE itab FROM vbap UP TO 10 ROWS.
CALL FUNCTION 'SAP_CONVERT_TO_CSV_FORMAT'
EXPORTING
i_field_seperator = ';'
TABLES
i_tab_sap_data = itab
CHANGING
i_tab_converted_data = itab1
EXCEPTIONS
conversion_failed = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1
sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
LOOP AT itab1 INTO wa_itab1.
TRANSLATE wa_itab1 USING ';,'.
MODIFY itab1 FROM wa_itab1 INDEX sy-tabix.
ENDLOOP.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = 'C:\TEMP\test.csv'
TABLES
data_tab = itab1
EXCEPTIONS
OTHERS = 1.
另: 在新的ABAP开发环境中支持POSIX-style Regular Expressions, 可以用示例程序 DEMO_REGEX_TOY 对正规式做一些测试.ABAP正规式文档见附件.
分享到:
相关推荐
这个小型的交互式工具专为ABAP开发者设计,旨在快速测试他们的正则表达式。它能够准确反映出ABAP中正则表达式的语义,而不是像许多在线工具那样仅适用于通用正则表达式。通过Regex Toy,开发者可以在ABAP环境中即时...
### ABAP正则表达式的使用 #### 一、引言 ABAP(Advanced Business Application Programming)作为SAP系统的核心编程语言之一,在企业级应用开发中占据着重要地位。随着SAP系统的不断发展,ABAP也在不断地引入新的...
ABAP读取本地CSV文件
根据提供的文件信息,本文将详细解释 ABAP 中通过 URL 下载文件的相关知识点,包括 ABAP 程序中实现此功能的基本步骤和技术要点。 ### ABAP URL 文件下载概述 ABAP(Advanced Business Application Programming)...
通过ABAP程序去读取FTP服务器的CSV文件
根据给定文件的信息,本文将围绕“ABAP外部链接下载文件”的主题展开,详细解析如何在SAP ABAP环境中利用URL实现文件下载的功能,并对代码片段进行深入分析。 ### 核心知识点概述 1. **ABAP环境中的HTTP客户端操作...
`(匹配前一个字符零次或一次)以及`|`(或操作符,匹配两种可能的模式之一)。 2. **ABAP中的正则表达式函数** - `REGEX_MATCH`: 检查字符串是否符合给定的正则表达式模式。 - `REGEX_REPLACE`: 在字符串中替换...
在ABAP(Advanced Business Application Programming)环境中,处理文件操作,如从FTP服务器下载文件、解析ZIP文件、将数据存储到内表以及管理文件系统中的文件移动,是常见的任务。本篇将详细介绍如何实现这些功能...
abap 上传文件到ftp 比较使用的实例,大家可以学习。
千分符(也称为分隔符)通常是一个逗号或句点,用于每三位数字之间,使得数字更易读。例如,数字1234567890经过千分符格式化后,会变为1,234,567,890。 在JavaScript中,我们可以使用内置的`toLocaleString()`方法...
sap web dynpro for abap
### ABAP程序批量下载工具详解 #### 一、概述 ABAP程序批量下载工具(原名:Mass download version 1.5.0)是一款专为SAP开发人员设计的实用工具,旨在帮助用户批量下载ABAP环境中的各种对象,如程序、函数、数据...
### ABAP Report报表文件上传与下载技术解析 #### 概述 ABAP(Advanced Business Application Programming)是SAP系统中的核心编程语言之一,主要用于开发、维护SAP应用程序。本文将详细解析ABAP环境下如何实现报告...
可读取复杂的csv文件,根据引号和逗号等分割读取所需要的数据信息。
ABAP程序下载工具1.4.4是一款专为SAP系统设计的应用,它允许用户方便地批量下载ABAP源代码程序。在SAP系统中,ABAP(Advanced Business Application Programming)是主要的编程语言,用于开发和定制企业级业务应用...
根据提供的ABAP程序片段,我们可以总结出以下关于生成XML文件的相关知识点: ### 1. ABAP中的IXML库介绍 ABAP(Advanced Business Application Programming)是SAP系统中广泛使用的一种编程语言。在处理XML数据时...
ABAP自开发程序下载源码