- Beiträge: 68
Lange Zeichenfolge in MySQL in mehrere Spalten sauber aufteilen
- Andreas Schauerte
- Autor
- Offline
- Benutzer
Weniger
Mehr
5 Jahre 11 Monate her #3590
von Andreas Schauerte
Lange Zeichenfolge in MySQL in mehrere Spalten sauber aufteilen - Beitrag(3590) wurde erstellt von Andreas Schauerte
Hallo!
Ich habe eine ODBC-Quelle bei welcher 5 Spalten á max. 30 Zeichen enthalten sind. Diese möchte ich in 3 Spalten á max. 50 Zeichen einer MySQL Datenquelle aufteilen. Nun sollten die Inhalte sauber bei einem Leerzeichen getrennt werden. Ich habe den Inhalt der 5 Spalten schon in eine Spalte (MySQL) übernommen, das macht das ganze vielleicht einfacher.
Können Sie mir helfen? Vielen Dank im Voraus!
Ich habe eine ODBC-Quelle bei welcher 5 Spalten á max. 30 Zeichen enthalten sind. Diese möchte ich in 3 Spalten á max. 50 Zeichen einer MySQL Datenquelle aufteilen. Nun sollten die Inhalte sauber bei einem Leerzeichen getrennt werden. Ich habe den Inhalt der 5 Spalten schon in eine Spalte (MySQL) übernommen, das macht das ganze vielleicht einfacher.
Können Sie mir helfen? Vielen Dank im Voraus!
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
5 Jahre 11 Monate her - 5 Jahre 11 Monate her #3593
von FlowHeater-Team
gruß
Robert Stark
FlowHeater-Team antwortete auf Lange Zeichenfolge in MySQL in mehrere Spalten sauber aufteilen - Beitrag(3593)
Hallo Herr Schauerte,
am einfachsten wird es sein, wenn Sie dazu ein kleines Skript für den .NET Script Heater verwenden. Ich habe Ihnen das Skript soweit vorbereitet, siehe unten. Sie müssen im Skript lediglich die maximale Länge pro Spalte/Feld eintragen. Anhand dieser Angabe fügt das Skript in die übergebene Zeichenfolge jeweils ein Trennzeichen "-#-" an der Position der Teilzeichenkette ein die die Maximale Länge widerspiegelt. Falls das verwendete Trennzeichen "-#-" bei Ihnen in den Zeichenfolgen vorkommen kann, ggf. ein anderes Trennzeichen verwenden.
Das Skript bzw. der .NET Script Heater erfordert einen Eingabeparameter mit der Zeichenfolge die dann mit dem Trennzeichen präpariert werden soll. Hierzu verwenden Sie den String Append Heater um die 5 ODBC Felder miteinander zu einer Zeichenfolge zu verbinden. Als Trennzeichen verwenden Sie hier ein Leerzeichen.
Um die so präparierte Zeichenfolge nun auf die 3 Spalten/Felder der MySQL WRITE Seite aufzuteilen benötigen Sie 3x den String Split Heater , der die Zeichenfolgen anhand des Trennzeichen „-#-“ in drei Teile aufteilt. Hinweis: Wenn Sie die Option „Warnung generieren, wenn Rückgabespalte größer als verfügbare Spalten“ deaktivieren, wird keine Warnung ausgegeben falls mal eine kürzere Zeichenfolge vorhanden sein sollte.
Im Anhang finden Sie ein kleines Beispiel dazu.
am einfachsten wird es sein, wenn Sie dazu ein kleines Skript für den .NET Script Heater verwenden. Ich habe Ihnen das Skript soweit vorbereitet, siehe unten. Sie müssen im Skript lediglich die maximale Länge pro Spalte/Feld eintragen. Anhand dieser Angabe fügt das Skript in die übergebene Zeichenfolge jeweils ein Trennzeichen "-#-" an der Position der Teilzeichenkette ein die die Maximale Länge widerspiegelt. Falls das verwendete Trennzeichen "-#-" bei Ihnen in den Zeichenfolgen vorkommen kann, ggf. ein anderes Trennzeichen verwenden.
Das Skript bzw. der .NET Script Heater erfordert einen Eingabeparameter mit der Zeichenfolge die dann mit dem Trennzeichen präpariert werden soll. Hierzu verwenden Sie den String Append Heater um die 5 ODBC Felder miteinander zu einer Zeichenfolge zu verbinden. Als Trennzeichen verwenden Sie hier ein Leerzeichen.
Um die so präparierte Zeichenfolge nun auf die 3 Spalten/Felder der MySQL WRITE Seite aufzuteilen benötigen Sie 3x den String Split Heater , der die Zeichenfolgen anhand des Trennzeichen „-#-“ in drei Teile aufteilt. Hinweis: Wenn Sie die Option „Warnung generieren, wenn Rückgabespalte größer als verfügbare Spalten“ deaktivieren, wird keine Warnung ausgegeben falls mal eine kürzere Zeichenfolge vorhanden sein sollte.
Im Anhang finden Sie ein kleines Beispiel dazu.
gruß
Robert Stark
Anhänge:
Letzte Änderung: 5 Jahre 11 Monate her von FlowHeater-Team.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Andreas Schauerte
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 68
5 Jahre 11 Monate her #3600
von Andreas Schauerte
Andreas Schauerte antwortete auf Lange Zeichenfolge in MySQL in mehrere Spalten sauber aufteilen - Beitrag(3600)
Guten Abend Herr Stark!
Das sieht für die erste Spalte sehr gut aus! Bei den darauffolgenden Spalten trennt das Skript jedoch beim ersten vorkommenden Leerzeichen, auch wenn die Länge noch gar nicht ausgereizt ist.
Ich habe versucht, im Skript eine Abfrage mit einer MinLen einzubauen, das klappt aber leider nicht.
Haben Sie einen Tipp für mich? Vielen Dank!
Das sieht für die erste Spalte sehr gut aus! Bei den darauffolgenden Spalten trennt das Skript jedoch beim ersten vorkommenden Leerzeichen, auch wenn die Länge noch gar nicht ausgereizt ist.
Ich habe versucht, im Skript eine Abfrage mit einer MinLen einzubauen, das klappt aber leider nicht.
Haben Sie einen Tipp für mich? Vielen Dank!
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
5 Jahre 11 Monate her #3601
von FlowHeater-Team
gruß
Robert Stark
FlowHeater-Team antwortete auf Lange Zeichenfolge in MySQL in mehrere Spalten sauber aufteilen - Beitrag(3601)
Hallo Herr Schauerte,
sorry da hat sich ein kleiner Fehler eingeschlichen, hier das korrigiert C# Skript
sorry da hat sich ein kleiner Fehler eingeschlichen, hier das korrigiert C# Skript
Code:
// hier die Maximale Zeichenketten Länge pro Spalte eintragen.
int MaxLen = 20;
string sTrennzeichen = "-#-";
public object DoWork()
{
if (InValues.Length != 1)
throw new ArgumentException("Es wird ein Eingangsparameter erwartet!");
string sIN = (string)InValues[0].GetString();
string [] sParts = sIN.Split(new char [] {' '});
string sRet = String.Empty;
int aktLen = 0;
foreach(string sPart in sParts)
{
if ((aktLen + sPart.Length + sTrennzeichen.Length) > MaxLen)
{
// Trennzeichen enfügen
sRet += sTrennzeichen;
// aktuelle Länge zurücksetzen
aktLen = 0;
}
if (aktLen != 0)
{
sRet += " ";
aktLen++;
}
sRet += sPart;
aktLen += sPart.Length;
}
return sRet;
}
Code:
gruß
Robert Stark
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Andreas Schauerte
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 68
5 Jahre 11 Monate her #3602
von Andreas Schauerte
Andreas Schauerte antwortete auf Lange Zeichenfolge in MySQL in mehrere Spalten sauber aufteilen - Beitrag(3602)
Hallo Herr Stark,
vielen Dank für das Skript, das hilft mir ungemein!
Viele Grüße
vielen Dank für das Skript, das hilft mir ungemein!
Viele Grüße
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
Ladezeit der Seite: 0.281 Sekunden