点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好!
请注意:我昨天大部分时间都在搜索SDN并阅读有关此主题的各种线程。 是的,我知道,关于该主题还有其他话题,但是昨天下午我花了整个时间尝试发布的每个解决方案,但没有任何效果。 因此,据我所知,尚无人针对此问题发布明确的解决方案。
我正在从我们的应用程序服务器中读取逗号分隔的CSV文件。 它最初是在Microsoft Excel中,但另存为CSV文件。 我按如下所示打开文件:
OPEN DATASET p_fname,用于在默认情况下以文本模式输入。
这是我的循环,可将整个文件读取到一个内部表中,并将其拆分为各个字段:
读取数据集p_fname INTO wa_unsplit。
sy-subrc EQ 0。
向w_unsplit_tot加1。
在w_comma INTO中拆分wa_unsplit:
wa_split-massn
wa_split-massg
wa_split-curr
wa_split-persg
wa_split-pernr
wa_split-persid
wa_split-persk
wa_split-stat2
wa_split-fisc_year
wa_split-funds_center
wa_split-plans
wa_split-orgeh
wa_split-abkrs
wa_split-werks
wa_split-sem_posit
wa_split-ansal
wa_split-bsgrd
wa_split-adm_adj_amt
wa_split-hourly_rate。
附加wa_split到它_split。
清除:wa_unsplit,
wa_split。
读取数据集p_fname INTO wa_unsplit。
结束。
问题是最后一个字段wa_split-hourly_rate(定义为字符长度17)在其末尾附加了一个"#"。 每条记录都会发生这种情况,它似乎是CR/LF字符(十六进制的值与cl_abap_char_utilities => cr_lf相同)。
我已经尝试了所有以前建议的从我的hourly_rate字段中删除该字符的方法。 我尝试了另一个STRIP命令。 我已经尝试过REPLACE和TRANSLATE以及很多其他功能。 尽管SDN上存在所有与此相关的线程,但我还没有找到真正可行的方法。
当然,我不能成为第一位从Application Server读取文件并遇到此问题的人。
请不要发布指向无效的解决方案的链接! 凡能解决挑战的人将获得满分。
谢谢大家! ????
您可以使用cl_abap_char_utilities => cr_lf来拆分wa_split-hourly_rate:
致谢
非常感谢。
您好
如果您不在unicode系统上,那么
常量:con_cret类型x值'0D'。
,如果在Unicode系统上
常量:
con_cret类型c值cl_abap_char_utilities = > CR_LF。
然后分割您的字符串。
致谢,
Naimesh
也对我有帮助! ????
而不是第一个SPLIT中的wa_split-hourly_rate
使用变量v_STRING。
然后再次将V_STRING拆分为"#"。
将V_STRING设置为"#",进入wa_split-hourly_rate
V_temp1。
致谢
srikanth
我想维克还没有从其他地方穿过.....????
嗨, >
检查数据集包含的逗号分隔列(字段)和要拆分的字段的数量。 他们应该匹配每个。 如果您错过其中任何一个/多个,可能会发生您的情况。
Raju
一周热门 更多>