Code: Alles auswählen.
CALL FUNCTION 'UPLOAD'
EXPORTING
filename = 'C:\ ...\daten.txt'
* filetype =
TABLES
data_tab = lt_ergebnis
EXCEPTIONS
conversion_error = 1
file_open_error = 2
file_read_error = 3
invalid_table_width = 4
invalid_type = 5
no_batch = 6
unknown_error = 7
gui_refuse_filetransfer = 8
OTHERS = 9.
LOOP AT lt_ergebnis ASSIGNING FIELD-SYMBOL(<ergebniszeile>).
APPEND INITIAL LINE TO lt_split ASSIGNING FIELD-SYMBOL(<neue_zeile>).
SPLIT <ergebniszeile> AT ' ' INTO TABLE DATA(lt_hilfstabelle_spalten). --> hier habe ich nur ein leerzeichen
LOOP AT lt_hilfstabelle_spalten ASSIGNING FIELD-SYMBOL(<spaltenwert>).
ASSIGN COMPONENT sy-tabix OF STRUCTURE <neue_zeile> TO FIELD-SYMBOL(<spalte_der_zieltabelle>).
<spalte_der_zieltabelle> = <spaltenwert>.
ENDLOOP.
ENDLOOP.
Folgende Benutzer bedankten sich beim Autor DeathAndPain für den Beitrag:
HH_ABAP
Folgende Benutzer bedankten sich beim Autor PeterPaletti für den Beitrag:
HH_ABAP
Folgende Benutzer bedankten sich beim Autor DeathAndPain für den Beitrag:
HH_ABAP
Wenn es feste Spaltenbreiten sind, ist es dann aber wieder "einfacher" diese zu splitten:DeathAndPain hat geschrieben: ↑01.05.2023 11:51Zumal es mir bei dem Screenshot so scheint, als ob zwischen den ersten Spalten durchaus nur ein Leerzeichen liegt. Bei einer csv mit fester Breite kann der Abstand zwischen den Spalteninhalten sogar 0 Zeichen betragen.
Code: Alles auswählen.
BEGIN OF ts_row,
col1 TYPE c LENGTH 5,
col2 TYPE c LENGTH 1,
col3 TYPE c LENGTH 8
col4 TYPE c LENGTH 15,
col5 TYPE c LENGTH 5,
col6 TYPE c LENGTH 6,
.... TYPE c LENGTH ???,
coln TYPE c LENGTH n,
END OF ts_row.
DATA: ls_row typw ts_row.
ls_row = ls_file_line.
Wenn es feste Spaltenbreiten sind, ist es dann aber wieder "einfacher" diese zu splitten:DeathAndPain hat geschrieben: ↑01.05.2023 11:51Zumal es mir bei dem Screenshot so scheint, als ob zwischen den ersten Spalten durchaus nur ein Leerzeichen liegt. Bei einer csv mit fester Breite kann der Abstand zwischen den Spalteninhalten sogar 0 Zeichen betragen.
Code: Alles auswählen.
BEGIN OF ts_row,
col1 TYPE c LENGTH 5,
col2 TYPE c LENGTH 1,
col3 TYPE c LENGTH 8
col4 TYPE c LENGTH 15,
col5 TYPE c LENGTH 5,
col6 TYPE c LENGTH 6,
.... TYPE c LENGTH ???,
coln TYPE c LENGTH n,
END OF ts_row.
DATA: ls_row typw ts_row.
ls_row = ls_file_line.
Folgende Benutzer bedankten sich beim Autor JHM für den Beitrag (Insgesamt 2):
HH_ABAP • Sebastian82