CSV String

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

CSV String

Beitrag von Django90 (ForumUser / 27 / 15 / 0 ) »
Guten Morgen liebes ABAP Forum,

Ich melde mich in gewohnter Regelmäßigkeit, um euch meine kleinen Probleme Vorzustellen.

Dieses mal will ich einen CSV String mit 8 integer Werte durch Semikolon getrennt, und summiert haben.

Ich habe da nun ein paar Fragen.

1. Was ist ein CSV String genau? Ein durch Komma getrennter Wert? Oder steckt da mehr dahinter?
2. Wie legt man so ein CSV String an?

Vielleicht hat ja jemand ein Muster für meine Aufgabenstellung, damit ich daran üben kann.

Ich wünsche euch einen schönen Wochenstart!

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


Re: CSV String

Beitrag von a-dead-trousers (Top Expert / 4399 / 223 / 1182 ) »
https://de.wikipedia.org/wiki/CSV_(Dateiformat)
EDIT: Die URL war nicht ganz korrekt.

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
Django90

Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: CSV String

Beitrag von DeathAndPain (Top Expert / 1948 / 258 / 413 ) »
Für den Fall, dass der Wikipedia-Artikel zu kompliziert rüberkommt: Eine CSV ist einfach eine primitive Textdatei, mit der Tabellen abgelegt werden. Jede Zeile der Datei ist eine Tabellenzeile; die Spalten der Tabelle werden durch ein Trennsymbol (meist Komma oder Semikolon) gekennzeichnet. Die erste Zeile dient oft als Überschrift.

Man kann also eine CSV-Datei ganz einfach mit dem Windows Notepad schreiben. Einfaches Beispiel:

Titel;Name;Einkommen
Gutsherr;Meyer;100000
Magd;Agathe;100
Hund;Bello;0

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


Re: CSV String

Beitrag von a-dead-trousers (Top Expert / 4399 / 223 / 1182 ) »
Ich gebe zu, dass der Artikel etwas umfangreich ist, aber einen nicht ganz unwesentlichen Punkt hat DeathAndPain vergessen in seiner Kurzform zu erwähnen. Deswegen habe ich ja auch gleich den Link zum vollständigen Artikel gepostet.
Um Sonderzeichen innerhalb der Daten nutzen zu können (z. B. Komma in Dezimalzahlwerten), wird ein Feldbegrenzerzeichen (auch: Textbegrenzungszeichen) benutzt. Normalerweise ist dieser Feldbegrenzer das Anführungszeichen ". Wenn der Feldbegrenzer selbst in den Daten enthalten ist, wird dieser im Datenfeld verdoppelt (siehe Maskierungszeichen).
Für ein genaueres Verständnis, was das bedeutet, sei das Beispiel im Wiki Artikel erwähnt.
https://de.wikipedia.org/wiki/CSV_(Date ... )#Beispiel

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
Django90

Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: CSV String

Beitrag von DeathAndPain (Top Expert / 1948 / 258 / 413 ) »
Das gehört dann zu den Details, bei denen man sich dann an den Wikipedia-Artikel (oder andere Quellen) halten kann. Hier ging es ja erst mal darum, überhaupt ein Gefühl dafür zu entwickeln, was eine CSV-Datei ist. Wenn man nur den Namen hört und dann womöglich noch den Wikipedia-Artikel sieht, klingt das wie eine furchtbar komplizierte Sache, während CSV in Wahrheit zu den einfachsten Dateiformaten überhaupt gehört. Im Prinzip kann man in ABAP eine CSV-Datei ohne Hilfe von Funktionsbausteinen oder Methoden mit einfachen Befehlen selber bauen, auch wenn FBs und Methoden die Sache zuweilen einfacher machen mögen.

Bei den allermeisten CSV-Dateien, die mir bislang untergekommen sind, kommt das Trennzeichen auch nicht in den Nutzdaten vor. Soweit man die Chance dazu hat, bemüht man sich auch, das Trennzeichen entsprechend zu wählen, weswegen z.B. ich lieber Semikolon als Komma verwende, da nur sehr selten Nutzdaten dieses Zeichen verwenden.

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


Re: CSV String

Beitrag von Django90 (ForumUser / 27 / 15 / 0 ) »
Guten Morgen,

Vielen Dank für die Antworten und Ratschläge.
Mein Zeil ist es so viel wie möglich "ohne" Funktionsbaustein zu bauen, damit ich den Kern und die Syntax verstehe.

Meine Aufgabenstellung ist, so wenig Quellcode wie möglich zu benutzen um eine einfache CSV. Datei anzulegen.
Es ist relativ kompliziert sich diese Informationen vom Internet/Foren zu ziehen, da man erst einmal den Hintergrund dessen Beispiele verstehen muss/sollte.

Vielleicht könnt ihr mir ja ein Beispiel geben, wie ich eine CSV. Datei anlege, ohne einen Funktionsbaustein zu benutzen.

Vielen Dank für eure Hilfe.

VG, Django90

Re: CSV String

Beitrag von DeathAndPain (Top Expert / 1948 / 258 / 413 ) »
Bitteschön:

Code: Alles auswählen.

REPORT ZTEST4.

TYPES: BEGIN OF TYPE_TABELLE,
         MATNR TYPE MATNR,
         MATKL TYPE MATKL,
       END OF TYPE_TABELLE.

DATA: TABELLE TYPE STANDARD TABLE OF TYPE_TABELLE WITH HEADER LINE,
      S TYPE STRING.

PARAMETERS DATEI TYPE STRING. " Dateiname

START-OF-SELECTION.

APPEND VALUE #( MATNR = '000000000000000001' MATKL = '000000001' ) TO TABELLE.
APPEND VALUE #( MATNR = '000000000000000002' MATKL = '000000001' ) TO TABELLE.
APPEND VALUE #( MATNR = '000000000000000003' MATKL = '000000002' ) TO TABELLE.

OPEN DATASET DATEI FOR OUTPUT IN TEXT MODE ENCODING UTF-8.

TRANSFER 'Materialnummer,Warengruppe' TO DATEI.

LOOP AT TABELLE.
  CONCATENATE TABELLE-MATNR ',' TABELLE-MATKL INTO S.
  TRANSFER S TO DATEI.
ENDLOOP.

CLOSE DATASET DATEI.
Aber Vorsicht: Der obenstehende Report schreibt Dir die CSV-Datei in das Dateisystem Deines SAP-Servers! Also beim Dateinamen einen sinnvollen Pfad angeben; Du (und Deinen Basis) willst keinen Datenmüll im root-Verzeichnis des Servers haben. Wenn der Server unter Linux läuft, ist ein Verzeichnis wie /tmp für Experimente empfehlenswert. Mit der Transaktion AL11 kannst Du Dir die Datei hinterher anschauen.

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


Re: CSV String

Beitrag von Django90 (ForumUser / 27 / 15 / 0 ) »
Vielen Dank,

Du hast mir schon das ein oder andere mal geholfen.

Dank dir.

Re: CSV String

Beitrag von Abapanfänger (ForumUser / 61 / 16 / 1 ) »
Hallo Django

Ich würde dir auch den Befehl DATASET empfehlen.
Da ich das Gefühl habe das du auch relativ neu im ABAP bist gebe ich dir noch den Tipp dir den Befehl zu merken.

"DATASET" bietet einige Funktionen die ziemlich praktisch sind.

Bsp. Falls du einen Job einplanen möchtest, wird es schwer mit der FUBA "GUI_DOWNLOAD" ein File herunterzuladen. In solchen Fälle kann man "DATASET " das file erstellen und Daten ablegen.

Beste Grüsse,
ein weiterer Neuling :D

Re: CSV String

Beitrag von ralf.wenzel (Top Expert / 3931 / 200 / 281 ) »
Abapanfänger hat geschrieben:Falls du einen Job einplanen möchtest, wird es schwer mit der FUBA "GUI_DOWNLOAD" ein File herunterzuladen.
Nein.


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: CSV String

Beitrag von DeathAndPain (Top Expert / 1948 / 258 / 413 ) »
Kannst Du ein bisschen ausführlicher werden, lieber Ralf? Ich wüsste auch nicht, wie ein Hintergrundjob, dem gar kein GUI zur Verfügung steht, mit dem FUBA "GUI_DOWNLOAD" erfolgreich sein soll.

Re: CSV String

Beitrag von ralf.wenzel (Top Expert / 3931 / 200 / 281 ) »
Wenn ich (ohne technische Hilfsmittel) fliegen will, ist das nicht schwierig, sondern schlichtweg nicht möglich. Für den hier geschilderten Sachverhalt gilt Vergleichbares.

Normalerweise behelfe ich mir damit, die Dateien online hochzuladen und in einer Clustertabelle zu speichern, um dann den Hintergrundprozess zu starten, der die Verarbeitung übernimmt.


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: CSV String

Beitrag von DeathAndPain (Top Expert / 1948 / 258 / 413 ) »
Wenn ich (ohne technische Hilfsmittel) fliegen will, ist das nicht schwierig, sondern schlichtweg nicht möglich. Für den hier geschilderten Sachverhalt gilt Vergleichbares.
Mit anderen Worten, es war eine Spitzfindigkeit, weil er umgangssprachlich "schwer" und nicht "unmöglich" geschrieben hat (wobei jedem Leser klar war, was er gemeint hat). Alles klar, weiß ich Bescheid.

Folgende Benutzer bedankten sich beim Autor DeathAndPain für den Beitrag:
ralf.wenzel


Seite 1 von 1

Vergleichbare Themen

6
Antw.
4188
Views
string vergleich
von dimes » 22.05.2006 09:28 • Verfasst in ABAP® Core
2
Antw.
2252
Views
# in String suchen
von Thanatos82 » 05.03.2013 13:31 • Verfasst in ABAP® für Anfänger
8
Antw.
4837
Views
String splitten
von Marc K. » 23.08.2012 11:35 • Verfasst in ABAP® für Anfänger
1
Antw.
1119
Views
string limit
von anays » 08.02.2006 14:01 • Verfasst in ABAP® Core
4
Antw.
2754
Views
String aufsplitten
von Gast » 16.02.2006 13:25 • Verfasst in SAP - Allgemeines

Aktuelle Forenbeiträge

Bedarfszusammenfassung "Einzelbedarfe"
vor 55 Minuten von harri 2 / 1137
Trennen Strasse und Hausnummer
vor 2 Stunden von ralf.wenzel 21 / 11264
Dialog-Container mit Toolbar/Status
Gestern von black_adept gelöst 27 / 4358

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

Bedarfszusammenfassung "Einzelbedarfe"
vor 55 Minuten von harri 2 / 1137
Trennen Strasse und Hausnummer
vor 2 Stunden von ralf.wenzel 21 / 11264
Dialog-Container mit Toolbar/Status
Gestern von black_adept gelöst 27 / 4358

Unbeantwortete Forenbeiträge

IT0024 Qualifikationen CP-ID
Gestern von ArjenR 1 / 237
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 3162
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9756