SPLITEN - Mit verschiedenen leer space

Getting started ... Alles für einen gelungenen Start.
8 Beiträge • Seite 1 von 1
8 Beiträge Seite 1 von 1

SPLITEN - Mit verschiedenen leer space

Beitrag von HH_ABAP (Specialist / 262 / 144 / 1 ) »
Hallo,

ich bin dabei eine Text Datei (Bitte siehe den Screenshot) in einer interne Tabelle lesen (lt_split). In dieser Text Datei zwischen Felder gibt es unterschiedliche leerzeichen/leer space also mit meinem jetzigen Code kann ich es nicht spliten.

Zurzeit kann nur die erste drei Felder spliten, weil nur ein leer space dazwischen liegen aber die andere Felder kann es nicht spliten.

Hat jemand eine Idee?

Bitte siehe die Screenshots und den Code.

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.

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: SPLITEN - Mit verschiedenen leer space

Beitrag von wreichelt (Top Expert / 1046 / 30 / 192 ) »
Hallo,

versuche es mal mit diesem Beispiel

https://www.berater-wiki.de/Funktionsba ... RNAL_TABLE

hier wird eine Excel Datei (.Csv) eingelesen und damit funktionieren auch die Spalten

Gruß Wolfgang

Folgende Benutzer bedankten sich beim Autor wreichelt für den Beitrag:
HH_ABAP


Re: SPLITEN - Mit verschiedenen leer space

Beitrag von DeathAndPain (Top Expert / 1944 / 257 / 413 ) »
Das ist für eine Excel-Datei. HH_ABAP redet von einer Textdatei, und zwar in diesem Falle offenbar mit festen Spalten, also nicht semikolon-getrennt. Da muss er dann die Breite jeder Spalte kennen (z.B. über eine Customizingtabelle) und dann mit Stringoperatoren wie SUBSTRING die Zeilen in Teile "von Stelle a bis Stelle b" zerlegen.

Folgende Benutzer bedankten sich beim Autor DeathAndPain für den Beitrag:
HH_ABAP


Re: SPLITEN - Mit verschiedenen leer space

Beitrag von PeterPaletti (Specialist / 348 / 32 / 97 ) »
Oder mit FIND ALL OCCURRENCES OF jedes Vorkommen von SPACE ermitteln und wenn der Abstand von einem SPACE zum andern mehr als 1 Zeichen beträgt, die dazwischen liegenden Zeichen als Wert begreifen?
Ist aber wohl recht abenteuerlich.

Folgende Benutzer bedankten sich beim Autor PeterPaletti für den Beitrag:
HH_ABAP


Re: SPLITEN - Mit verschiedenen leer space

Beitrag von DeathAndPain (Top Expert / 1944 / 257 / 413 ) »
Zumal 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.

Folgende Benutzer bedankten sich beim Autor DeathAndPain für den Beitrag:
HH_ABAP


Re: SPLITEN - Mit verschiedenen leer space

Beitrag von JHM (Top Expert / 1197 / 1 / 197 ) »
DeathAndPain hat geschrieben:
01.05.2023 11:51
Zumal 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.
Wenn es feste Spaltenbreiten sind, ist es dann aber wieder "einfacher" diese zu splitten:

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.
Gruß Hendrik

Re: SPLITEN - Mit verschiedenen leer space

Beitrag von JHM (Top Expert / 1197 / 1 / 197 ) »
DeathAndPain hat geschrieben:
01.05.2023 11:51
Zumal 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.
Wenn es feste Spaltenbreiten sind, ist es dann aber wieder "einfacher" diese zu splitten:

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_ABAPSebastian82

Gruß Hendrik

Re: SPLITEN - Mit verschiedenen leer space

Beitrag von DeathAndPain (Top Expert / 1944 / 257 / 413 ) »
Das stimmt; das ist eine elegante Lösung.

Seite 1 von 1

Vergleichbare Themen

1
Antw.
948
Views
Internetabelle spliten
von Handeglo » 18.04.2008 17:18 • Verfasst in ABAP® für Anfänger
12
Antw.
9963
Views
REPLACE '#' in SPACE
von Handeglo » 21.12.2012 17:59 • Verfasst in ABAP® für Anfänger
2
Antw.
404
Views
SHIFT LEFT with space
von HH_ABAP » 23.02.2024 14:22 • Verfasst in ABAP® für Anfänger
3
Antw.
1490
Views
WITH space mach keine Leerstelle
von kaim77 » 06.12.2013 15:21 • Verfasst in ABAP® Core
0
Antw.
2149
Views
Unicode Problematik bei Character 'SPACE'
von ABAP_User » 31.03.2014 18:40 • Verfasst in Web-Dynpro, BSP + BHTML

Aktuelle Forenbeiträge

Trennen Strasse und Hausnummer
vor 43 Minuten von payten 13 / 10235
Dialog-Container mit Toolbar/Status
vor 15 Stunden von DeathAndPain gelöst 22 / 3210
Daten an Tabelle binden
vor 20 Stunden von Lukas Sanders 2 / 1072
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 641

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Trennen Strasse und Hausnummer
vor 43 Minuten von payten 13 / 10235
Dialog-Container mit Toolbar/Status
vor 15 Stunden von DeathAndPain gelöst 22 / 3210
Daten an Tabelle binden
vor 20 Stunden von Lukas Sanders 2 / 1072
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 641

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2636
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9220