Beispiel: Parsen eines String (Text mit fester Länge auf Excel)

www.altova.com Dieses Kapitel drucken Vorherige Seite Eine Ebene nach oben Nächste Seite

Startseite >  Erstellen von Mappings > Parsen und Serialisieren von Strings >

Beispiel: Parsen eines String (Text mit fester Länge auf Excel)

In diesem Beispiel wird Schritt für Schritt beschrieben, wie Sie ein Mapping-Design zum Parsen von String-Daten erstellen. Sie finden die Beispieldatei dazu unter dem folgenden Pfad: <Dokumente>\Altova\MapForce2019\MapForceExamples\ParseString.mfd.

 

Angenommen, Sie haben einige alte Textdaten, die in einem einzigen Datenbankfeld gespeichert sind. Bei den Textdaten handelt es sich um eine Mitarbeiterliste, die in der Spalte RESOURCE gespeichert und als Felder mit fester Länge formatiert ist:

ex_string_parse_07

 

Da die Textdaten als ein einziges Datenbankfeld gespeichert sind, können Sie die einzelnen Mitarbeiterdatensätze nicht einfach aufrufen und bearbeiten. Auf diese Art wird es schwierig, neue Mitarbeiter hinzuzufügen, Mitarbeiter zu löschen oder Daten zu sortieren. Unser Ziel ist es in diesem Beispiel, die Textdaten aus dem Datenbankfeld RESOURCE zu extrahieren und in eine Struktur aufzuteilen, um die Datensätze einfach verarbeiten zu können.

 

Dies lässt sich mit Hilfe der Komponente "String parsen/serialisieren" bewerkstelligen. Als erstes erhält die Komponente "String parsen/serialisieren" als Input die Textdaten. Diese werden anschließend geparst und in eine Struktur konvertiert. Schließlich wird die Struktur in ein Zielformat - in diesem Beispiel in ein Excel-Arbeitsblatt - geschrieben. Sie können jedoch im Allgemeinen jedes andere von MapForce unterstützte Ausgabeformat verwenden.

 

Kurz zusammengefasst, konvertiert das in diesem Beispiel beschriebene Mapping den Inhalt des Datenbankfelds RESOURCE in eine Tabelle. Nachdem das Mapping ausgeführt wurde, entspricht jede Tabellenzeile einem Mitarbeiter und jede Spalte einem der Felder mit fester Länge - und zwar in folgender Reihenfolge: ID, Nachname, Vorname, Durchwahl, Berufsbezeichnung, E-Mail-Adresse.

ex_string_parse_06

Erwarteter Output nach dem Parsen des String

Gehen Sie dazu folgendermaßen vor:

 

1.Fügen Sie die Quelldatenbank zum Mapping-Bereich hinzu. Die Datenbank steht unter dem folgenden Pfad als eigenständige SQLite-Datenbankdatei zur Verfügung: <Dokumente>\Altova\MapForce2019\MapForceExamples\\dbresources.db. (Verwenden Sie den Menübefehl Einfügen | Datenbank, um die Datenbankkomponente hinzuzufügen; siehe auch Herstellen einer Verbindung zu einer Datenbank ).
2.Wenn Sie aufgefordert werden, die Datenbankobjekte einzufügen, wählen Sie die Tabelle resources aus.

ex_string_parse_00

3.Fügen Sie eine Textkomponente zum Mapping-Bereich hinzu (Menübefehl Einfügen | Textdatei). Da es sich bei den Quelldaten um durch Felder getrennten Text handelt, wählen Sie die Option Einfache Verarbeitung... verwenden, wenn Sie von MapForce gefragt werden.
4.Konfigurieren sie die Struktur der Textkomponente entsprechend der Struktur der in der Datenbank gespeicherten Text-Quelldaten. Wie Sie möglicherweise bereits bemerkt haben, besteht der Quelltext aus den folgenden sechs Feldern mit fester Länge:

 

Größe in Zeichen

Feld

6

ID

15

Nachname

15

Vorname

3

Durchwahl

25

Berufsbezeichnung

25

E-Mail-Adresse

 

Deklarieren Sie die Textkomponente daher als feste Länge und fügen Sie sechs Felder hinzu, die den obigen Positionen entsprechen. (Um das Dialogfeld "Komponenteneinstellungen zu öffnen, klicken Sie mit der rechten Maustaste auf die Komponente und wählen Sie im Kontextmenü den Befehl Eigenschaften.)

ex_string_parse_02

Beachten Sie das Feld4, in dem integer als Datentyp definiert ist. Die Deklaration von Feld4 als numerischer Typ ist zwar für das aktuelle Beispiel nicht von Bedeutung, doch stellen Sie damit sicher, dass die aus dem Quelltext extrahierte Durchwahl (Field4) als numerischer Wert validiert wird.

5.Klicken Sie auf btn_file_string und wählen Sie anschließend aus dem Kontextmenü den Befehl Strings zu FLF parsen. Dadurch wird MapForce angewiesen, Strings in dieser Komponente zum Format FLF (Felder mit fester Länge) zu parsen.

ex_string_parse_02a

6.Fügen sie die Excel 2007+-Zielkomponente zum Mapping-Bereich hinzu. Klicken Sie auf Überspringen, wenn Sie aufgefordert werden, eine Beispieldatei anzugeben. (Sie können die Excel-Komponente mit dem Menübefehl Einfügen | Excel 2007+ hinzufügen, siehe auch Hinzufügen von Microsoft Excel-Dateien als Mapping-Komponenten ).
7.Klicken Sie auf die Schaltfläche excel1-compicon neben dem Node Zeile 1, n=dyn und konfigurieren Sie die Excel-Komponente so, dass für jedes Textfeld, beginnend mit der ersten Zeile, eine Zeile geschrieben wird (siehe Abbildung unten) (Nähere Informationen zum Excel 2007+-Komponententypen und ihrer Konfiguration finden Sie unter Informationen zur Excel 2007+-Komponente ).

ex_string_parse_03

8.Ziehen Sie, wie unten gezeigt, die Verbindungslinien zwischen den Datenelementen der Komponenten.

mf_map_ParseString

Auf der linken Seite des Mappings wird der Inhalt der Datenbankspalte "resource" von einem Stringwert in eine MapForce-Struktur konvertiert (geparst). Auf der rechten Seite des Mappings werden die Datenelemente der Komponente Parsen (Textdatei) mit einzelnen Excel-Spalten verbunden, wodurch der Quellstring in einzelne sortierbare Zellen aufgeteilt wird.

 

Sie haben nun eine MapForce Design-Datei fertig erstellt, die String-Daten parst und anhand dieser Daten eine Struktur generiert. Wenn Sie auf das Register Ausgabe klicken, werden die alten Textdatenbestände nun, wie beabsichtigt, in einzelne Zeilen und Spalten eines Excel-Arbeitsblatts konvertiert.


© 2019 Altova GmbH