Laden...

Forenbeiträge von MaikelF Ingesamt 2 Beiträge

14.06.2022 - 13:31 Uhr

Hallo, vielen Dank für die Antworten damals. Leider komme ich erst jetzt wieder dazu an dem Projekt weiterzuarbeiten.
Es ist so, dass die RTF Dateien in Visual Studio innerhalb einer ETL Strecke generiert werden mittels des Skript im Anhang. Die Daten werden dabei aus einer Zeile einer Tabelle ausgelesen und dann jeweils in eine Datei geschrieben. An dieser Stelle habe ich scheinbar keinen Einfluss auf die Kodierung. Ich habe mal mit der Person gesprochen, die damals die Daten in die Tabelle geladen hat. Er sagt, die Daten wurden damals im Format Ansi 1252 codiert und abgespeichert.

Wie müsste der Code denn aussehen, wenn ich die Dateien jeweils umcodieren möchte von Ansi1253 zu UTF8?
Bei System.Text.Encoding. stehen mir ja nur ein paar Typen zur Verfügung wie UTF8, 16, Unicode etc.

// Einlesen
string fileContent = File.ReadAllText(@Path_Source + "RTF.rtf", System.Text.Encoding.ASCII);

// In Datei schreiben
File.WriteAllText(@Path_Target + "RTF.RTF", fileContent, System.Text.Encoding.UTF8);

Viele Grüße

Maikel

29.04.2022 - 15:03 Uhr

Hallo zusammen, ich arbeite im Bereich Data Warehouse für eine Uni Klinik und entwickle ETL Strecken mit Visual Studio. Bei meinem derzeitigen Projekt möchte ich RTF formatierte Befundtexte aus einer Oracle Datenbank heraus exportieren und in RTF Dateien schreiben, um anschließend mittels C# die RTF Formatierung zu entfernen, so dass TXT Dateien übrig bleiben. Das Erstellen der RTF Dateien erfolgt direkt mittels Task in Visual Studio innerhalb der Datenstrecke. Das klappt auch. Anschließend werden die RTF Dateien eingelesen und cleane TXT Dateien daraus erstellt, mittels folgendem Code


RichTextBox rtb = new RichTextBox();
rtb.Rtf = s;
System.IO.File.WriteAllText(Path_Target + "RTF_TO_TXT/" + NewFilename, rtb.Text, System.Text.Encoding.UTF8);

Bei der aktuellen Tabelle funktioniert das aber nicht, es gibt einen Laufzeitfehler. Das liegt wohl daran, dass die zuvor erstellten RTF Dateien keine UTF8 Codierung aufweisen. Wenn ich die Datei mittels Notepad++ öffne, sehe ich das keine Codierung angegeben ist. Ändere ich diese manuell auf UTF8, kann mein Code Schnipsel die Datei verarbeiten.
Jetzt war mein Ansatz die Codierung Datei zu ändern mittels:


System.IO.File.WriteAllText(Path_Target + "RTF_TO_TXT/" + NewFilename, rtb.Text, System.Text.Encoding.UTF8);

Allerdings klappt das nicht, die Datei beinhaltet anschließend nur noch wilde Zeichen. Hat jemand eine Idee? Viele Grüße und danke im Voraus