Liebe Community,
Ich empfange Daten mit identifizierenden Informationen in 1 Zelle.
Names Default to Here(1);
dt = New Table("Sample",
add rows(2),
New Column( "Field_9630", Character, "Nominal" )
);
dt:Field_9630 << Set Values({"Customer: Mr A LoyalProduct: Cabinet HardwareRegion: Suburban New Dev", "Customer: Jenifer B Ashley LeighProduct: LumberRegion: Suburban Existing"});Das Ziel besteht darin, drei Spalten zu erstellen - Kunde, Produkt, Region
dt2 = New Table( "Sample 2",
Add Rows( 2 ),
New Column( "Field_9630",
Character,
"Nominal",
Set Selected,
Set Values(
{"Customer: Mr A LoyalProduct: Cabinet HardwareRegion: Suburban New Dev",
"Customer: Jenifer B Ashley LeighProduct: LumberRegion: Suburban Existing"
}
),
Set Display Width( 132 )
),
New Column( "Customer",
Character,
"Nominal",
Set Values( {"Mr A Loyal", "Jenifer B Ashley Leigh"} )
),
New Column( "Product",
Character,
"Nominal",
Set Values( {"Cabinet Hardware", "Lumber"} )
),
New Column( "Region",
Character,
"Nominal",
Set Values( {"Suburban New Dev", "Suburban Existing"} )
)
);Vielen Dank im Voraus!
Aufrichtig,
MG
Hallo,
Das Parsen von Zeichenfolgen ist immer eine Herausforderung, wenn keine eindeutigen Trennzeichen vorhanden sind.
Unter der Annahme, dass die Eingabezeichenfolge immer die Schlüsselwörter „Kunde:“, „Produkt:“ und „Region:“ enthält, können Sie den folgenden Ansatz verwenden:
- Ersetzen Sie die Schlüsselwörter durch "," mithilfe der Funktion SUBSTITUTE()
- Analysieren Sie die relevanten Informationen mit der Funktion WORD()
- Bereinigen Sie die resultierenden Zeichenfolgen mit der Funktion TRIM().
New Table( "Sample_PARSED",
Add Rows( 2 ),
New Column( "Field_9630",
Character,
"Nominal",
Set Values(
{"Customer: Mr A LoyalProduct: Cabinet HardwareRegion: Suburban New Dev",
"Customer: Jenifer B Ashley LeighProduct: LumberRegion: Suburban Existing"
}
),
Set Display Width( 726 )
),
New Column( "TEMP",
Character,
"Nominal",
Formula(
Substitute( :Field_9630,
"Customer:", ",",
"Product:", ",",
"Region:", ","
)
)
),
New Column( "Column 2",
Character,
"Nominal",
Formula( Trim( Word( 1, :TEMP, "," ) ) ),
Set Display Width( 157 )
),
New Column( "Column 3",
Character,
"Nominal",
Formula( Trim( Word( 2, :TEMP, "," ) ) )
),
New Column( "Column 4",
Character,
"Nominal",
Formula( Trim( Word( 3, :TEMP, "," ) ) ),
Set Display Width( 200 )
)
)
Ich hoffe, es hilft.
Am besten,
TS
@Thierry_S Danke für die schnelle Antwort und Lösung. Vielen Dank!