Dynamischer Daten Import / Export

datenbank

weil Einfach - produktiver ist
Mit der Freeware Version können bis zu 10.000 Datensätze verarbeitet werden!
Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:
Willkommen im FlowHeater Support Forum!

Hier werden Fragen zum Umgang mit dem FlowHeater beantwortet.

THEMA: Entfernen von nicht druckbaren Zeichen

Entfernen von nicht druckbaren Zeichen 6 Jahre 4 Wochen her #220

  • Achim Federle
  • Achim Federles Avatar
  • Offline
  • New Member
  • Beiträge: 7
Hallo Herr Stark,
ich importiere regelmäßig Exceldateien in denen sich nicht druckbare Zeichen befinden. Gibt es eine Möglichkeit mit dem Floheater diese beim Import zu entfernen. Unter Excel gibt es die Funktion "säubern", aufgrund der hohen Anzahl an Datensätzen ist diese Funktion für mich aber nicht praktikabel.


Mit besten Grüßen
Achim Federle
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: Entfernen von nicht druckbaren Zeichen 6 Jahre 3 Wochen her #222

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Administrator
  • Beiträge: 1099
Hallo Herr Federle,

das können Sie mit dem .NET Script Heater sowie u.s. Skript Code durchführen.

Sie müssen für jedes Excel Feld, das nicht druckbare Zeichen enthalten kann, einen .NET Script Heater auf den Designer ziehen. Kopieren Sie dann den u.s. Skript Code hinein und verbinden das Excel Feld mit dem Eingang des .NET Script Heaters sowie den Ausgang mit dem zugehörigen Feld der WRITE Seite.
Das Skript Filtert alle Zeichen aus der eingehenden Zeichenkette (String) heraus. Ich denke es sollten alle gängigen Zeichen berücksichtigt werden.

z.Zt. werden erkannt.
- Alle Buchstaben und Zahlen
- Sowie Sonderzeichen (siehe Kommentar im Skript)

Sollten Zeichen Fehlen, die nicht ersetzt/gelöscht werden sollen, brauchen Sie diese Zeichen nur im Skript bei Sonderzeichen, zwischen den Hochkommas“ mit eintragen. (siehe Kommentar im Skript)

Hinweis: Das Skript verwendet Regular Expressions (Regex) und läuft daher erst ab FlowHeater Version 1.2.6. Weitere Infos dazu entnehmen Sie bitte den ReleaseNotes.
public object DoWork()
{
    	string ersetzen_durch = ""; 		// = wird aus der Zeichenkette entfernt
	// string ersetzen_durch = " "; 	// = wird mit Leerzeichen ersetzt

	// falls Zeichen fehlen sollten hier die zusätzlichen Sonderzeichen eintragen
	// die nicht ersetzt werden sollen
    	string sonderzeichen = "\\[\\]!ß´#\"$§%&' ()*+€,-./:;<=>?@\\^_`{|}~";

    	Regex myRegex = new Regex(@"[^\w\d" + sonderzeichen + "]");
    	return myRegex.Replace((string)InValues[0].GetString(), ersetzen_durch);
}
gruß
Robert Stark

Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: Entfernen von nicht druckbaren Zeichen 6 Jahre 3 Wochen her #223

  • Achim Federle
  • Achim Federles Avatar
  • Offline
  • New Member
  • Beiträge: 7
Hallo Herr Stark,
vielen Dank für das Script. Ich habe es ausprobiert, es funktioniert.
Allerdings erhalte ich bei lehren Feldern eine Fehlermeldung "Der Wert darf nicht Null sein...."
Ich habe einen Bildschirmausdruck angefügt.
Können Sie mir dazu bitte einen Lösungsvorschlag mitteilen.

Mit besten Grüßen
Achim Federle
Anhang:
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: Entfernen von nicht druckbaren Zeichen 6 Jahre 3 Wochen her #225

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Administrator
  • Beiträge: 1099
Hallo Herr Federle,

anbei ein modifiziertes Skript, das auch mit Leeren Feldern umgehen kann.
public object DoWork()
{
	object invalue = InValues[0].GetValue();	
	if (invalue == null)
	{
		// Wenn keine Wert vorhanden, nichts weiter tun!
		return invalue;
	}

    	string ersetzen_durch = ""; 		// = wird aus der Zeichenkette entfernt
	// string ersetzen_durch = " "; 	// = wird mit Leerzeichen ersetzt

	// falls Zeichen fehlen sollten hier die zusätzlichen Sonderzeichen eintragen
	// die nicht ersetzt werden sollen
    	string sonderzeichen = "\\[\\]!ß´#\"$§%&' ()*+€,-./:;<=>?@\\^_`{|}~";

    	Regex myRegex = new Regex(@"[^\w\d" + sonderzeichen + "]");
    	return myRegex.Replace((string)invalue, ersetzen_durch);
}
gruß
Robert Stark

Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: Entfernen von nicht druckbaren Zeichen 6 Jahre 3 Wochen her #226

  • Rainer Warth
  • Rainer Warths Avatar
  • Offline
  • New Member
  • Beiträge: 3
Hallo, das Script kommt zu rechten Zeit. Es hat auch mir geholfen.

Vielen Dank, Rainer Warth
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: Entfernen von nicht druckbaren Zeichen 6 Jahre 3 Wochen her #227

  • Achim Federle
  • Achim Federles Avatar
  • Offline
  • New Member
  • Beiträge: 7
Hallo Herr Stark,
ich hab das neue Script ausprobiert, es funktioniert.
Damit wird mir zukünfig einiges an Arbeit erspart.

Vielen Dank

Mit besten Grüßen
Achim Federle
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: Entfernen von nicht druckbaren Zeichen 6 Jahre 3 Wochen her #228

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Administrator
  • Beiträge: 1099
kurzer Nachtrag

Das Skript wurde noch um Tabulatoren sowie Zeilenumbrüche (newline) Zeichen erweitert, so dass diese nicht gefiltert werden.

Hier das komplette Skript noch einmal.
public object DoWork()
{
	object invalue = InValues[0].GetValue();	
	if (invalue == null)
	{
		// Wenn keine Wert vorhanden, nichts weiter tun!
		return invalue;
	}

    	string ersetzen_durch = ""; 		// = wird aus der Zeichenkette entfernt
	// string ersetzen_durch = " "; 	// = wird mit Leerzeichen ersetzt

	// falls Zeichen fehlen sollten hier die zusätzlichen Sonderzeichen eintragen
	// die nicht ersetzt werden sollen
    	string sonderzeichen = "\t\n\r\\[\\]!ß´#\"$§%&' ()*+€,-./:;<=>?@\\^_`{|}~";

    	Regex myRegex = new Regex(@"[^\w\d" + sonderzeichen + "]");
    	return myRegex.Replace((string)invalue, ersetzen_durch);
}
gruß
Robert Stark

Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
Der Administrator hat öffentliche Schreibrechte deaktiviert.
Moderatoren: FlowHeater-Team
Ladezeit der Seite: 0.085 Sekunden