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: NEWLINE durch "\n" ersetzen

NEWLINE durch "\n" ersetzen 2 Monate 4 Tage her #2875

  • J. Kober
  • J. Kobers Avatar
  • Offline
  • New Member
  • Beiträge: 4
Guten Abend,

besteht per "Replace" eine Möglichkeit in einem Text, jeden Zeilenwechsel durch einen "\n"-Character zu ersetzen?
Es kann zwar "NEWLINE" gesucht werden, jedoch habe ich bisher keine Option gefunden, um das Steuerzeichen einzufügen.

Danke und Gruß
Letzte Änderung: 2 Monate 4 Tage her von J. Kober.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

NEWLINE durch "\n" ersetzen 2 Monate 3 Tage her #2876

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Administrator
  • Beiträge: 1102
Hallo Herr Kober,

ich verstehe nicht ganz was Sie tun möchten :unsure:

Mit der -<NEWLINE>- Konstante im String Replace Heater können Sie nach Zeilenumbrüchen suchen bzw. Zeichen durch Zeilenumbrüche ersetzen lassen, siehe Screenshot,

Mit der Konstante -<NEWLINE>- in der String Replace Suche wird „\n“ (= MAC, UNIX, Linux), „\r“ (= kommt noch von früher) bzw. „\r\n“ (= Windows Standard) als Zeilenumbruch erkannt. Wenn Sie die Konstante -<NEWLINE>- auf der Ersetzen Seite verwenden wird immer „\r\n“ verwendet.

Möchten Sie einen Standard Windows Zeilenumbruch („\r\n“ bzw. 0x0D0A) durch nur („\n“ bzw. 0x0A) ersetzen? Das funktioniert so leider nicht mit dem String Replace Heater, da er im Ersetzen Modus wie oben beschrieben immer einen Windows Zeilenumbruch verwendet, also „\r\n“ bzw. 0x0D0A.

Wenn Sie das durchführen möchten benötigen Sie den .NET Script Heater und folgendes Skript. Zur Verwendung einen .NET Script Heater auf den Designer ziehen über einen Doppelklick die Eigenschaften öffnen und das Default Skript mit diesem ersetzen.

C# Script
public object DoWork()
{
  if (InValues.Length != 1)
    throw new Exception("Ein Eingangsparameter erwartet!");

  // Den ersten Eingangsparameter holen
  string sIN = (string)InValues[0].GetString();

  // Standard Windows Zeilenumbruch 0x0D0A (=\r\n) mit 0x0A (=\n) ersetzen
  return sIN.Replace("\r\n", "\n");
}

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.
Letzte Änderung: 2 Monate 3 Tage her von FlowHeater-Team.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

NEWLINE durch "\n" ersetzen 2 Monate 3 Tage her #2878

  • J. Kober
  • J. Kobers Avatar
  • Offline
  • New Member
  • Beiträge: 4
Hallo Herr Stark,

danke für Ihre Antwort.

Leider ist das Ergebnis noch nicht so, wie unsere Anforderung an das Resultat.
Ich versuche eine genauere Beschreibung und hänge zur Verdeutlichung zwei Screenshots mit an:
Mit den jetzigen Einstellungen erhalten wir „echte Zeilenwechsel“ in der erzeugten CSV (Screenshot „ist“). Diese sollen jedoch nur bei jedem neuen Datensatz enthalten sein.


Dateianhang:

Dateiname: Zeilenumbruch_ist.pdf
Dateigröße:6 KB


Für alle anderen „Textumbrüche“ haben wir in der uns vorliegenden Musterdatei ein Steuerzeichen (Screenshot „soll“), welches keinen Zeilenwechsel in der CSV verursacht, wenn sie in einem Editor betrachtet wird. Beim Öffnen in z.B. einem Office-Programm wird der Text aber an diesen Stellen umbrochen.

Dateianhang:

Dateiname: Zeilenumbr...soll.pdf
Dateigröße:6 KB


Ich hoffe, dies erläutert die Thematik etwas genauer und dass es auch hierfür einen Lösungsansatz gibt.

Ein schönes WE
Der Administrator hat öffentliche Schreibrechte deaktiviert.

NEWLINE durch "\n" ersetzen 2 Monate 3 Tage her #2879

  • J. Kober
  • J. Kobers Avatar
  • Offline
  • New Member
  • Beiträge: 4
Hallo Herr Stark,

Lösung ist gefunden:
Wenn man nicht "\n", sondern stattdessen "\r" verwendet, wird das gewünschte Resultat erzielt.

Somit statt der Zeile
return sIN.Replace("\r\n", "\n");
entsprechend
return sIN.Replace("\r\n", "\r");
einfügen.

Nochmals schönes WE
Letzte Änderung: 2 Monate 3 Tage her von J. Kober.
Der Administrator hat öffentliche Schreibrechte deaktiviert.
Moderatoren: FlowHeater-Team
Ladezeit der Seite: 0.083 Sekunden