- Beiträge: 93
Umlaute, Sonderzeichen und Co.
- fertac
- Autor
- Offline
- Benutzer
Weniger
Mehr
13 Jahre 5 Monate her #440
von fertac
Umlaute, Sonderzeichen und Co. wurde erstellt von fertac
Hallo Herr Stark,
habe folgenden Code. Kann aber ö, ä nicht mit verarbeiten und wenn auf der read Seite 1/3" für 1/3 Zoll steht setzt er "1/3"" auf der write Seite.
Habe schon Sonderzeichen im script eingebaut. Bin aber nicht sicher ob das so o.k. ist.
Beispiel: redseite
ändern
öfnen
1/3" Rohr
string [] csv = null;
public object DoWork()
{
string sRet = null;
string ersetzen_durch = ""; // = wird aus der Zeichenkette entfernt
// CSV replace daten einlesen;
if (csv == null)
csv = File.ReadAllLines("replace.csv");
string sIN = (String)InValues[0].GetString();
if (sIN == null)
return null;
// 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 + "]");
sIN = myRegex.Replace(sIN, ersetzen_durch);
// Über alle Zeilen der replace.csv Datei lesen
foreach(string line in csv)
{
char [] trennzeichen = { ';' }; //
string [] values = line.Split(trennzeichen);
// kommt der 1. Wert der CSV Datei im IN Parameter vor,
// dann den 2. Wert der CSV zurückgeben.
if (sIN.IndexOf(values[0], StringComparison.CurrentCultureIgnoreCase) >= 0)
{
sRet = values[1];
break;
}
}
if (sRet == null)
sRet = "x"; // hier ggf. den Wert ändern falls nichts zutreffend!
return sRet;
}
Viele Grüße
fertac :unsure:
habe folgenden Code. Kann aber ö, ä nicht mit verarbeiten und wenn auf der read Seite 1/3" für 1/3 Zoll steht setzt er "1/3"" auf der write Seite.
Habe schon Sonderzeichen im script eingebaut. Bin aber nicht sicher ob das so o.k. ist.
Beispiel: redseite
ändern
öfnen
1/3" Rohr
string [] csv = null;
public object DoWork()
{
string sRet = null;
string ersetzen_durch = ""; // = wird aus der Zeichenkette entfernt
// CSV replace daten einlesen;
if (csv == null)
csv = File.ReadAllLines("replace.csv");
string sIN = (String)InValues[0].GetString();
if (sIN == null)
return null;
// 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 + "]");
sIN = myRegex.Replace(sIN, ersetzen_durch);
// Über alle Zeilen der replace.csv Datei lesen
foreach(string line in csv)
{
char [] trennzeichen = { ';' }; //
string [] values = line.Split(trennzeichen);
// kommt der 1. Wert der CSV Datei im IN Parameter vor,
// dann den 2. Wert der CSV zurückgeben.
if (sIN.IndexOf(values[0], StringComparison.CurrentCultureIgnoreCase) >= 0)
{
sRet = values[1];
break;
}
}
if (sRet == null)
sRet = "x"; // hier ggf. den Wert ändern falls nichts zutreffend!
return sRet;
}
Viele Grüße
fertac :unsure:
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
13 Jahre 5 Monate her #441
von FlowHeater-Team
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.
FlowHeater-Team antwortete auf Aw: Umlaute, Sonderzeichen und Co.
Hallo Herr Kappen,
Das mit dem Regular Expression (RegEx) ist nicht notwendig. Im Anhang befindet sich ein Beispiel, das auch mit Umlauten funktioniert.
Ich denke bei Ihnen ist die replace.csv Datei nicht im Windows ANSI (Codepage 1251) Format abgespeichert. Was zeigt Ihnen z.B. Notepad an wenn Sie die Datei replace.csv öffnen. Werden hier die Sonderzeichen und Umlaute richtig dargestellt? Wenn nein, müssen Sie die Datei vorher konvertieren. Geht auch mit dem FlowHeater, siehe Beispiele:
Das mit dem Regular Expression (RegEx) ist nicht notwendig. Im Anhang befindet sich ein Beispiel, das auch mit Umlauten funktioniert.
Ich denke bei Ihnen ist die replace.csv Datei nicht im Windows ANSI (Codepage 1251) Format abgespeichert. Was zeigt Ihnen z.B. Notepad an wenn Sie die Datei replace.csv öffnen. Werden hier die Sonderzeichen und Umlaute richtig dargestellt? Wenn nein, müssen Sie die Datei vorher konvertieren. Geht auch mit dem FlowHeater, siehe Beispiele:
- MS DOS ASCII CSV zu Windows ANSI FlatFile konvertieren
- Windows ANSI FlatFile zu MS DOS ASCII CSV konvertieren
Anhang umlaute.zip wurde nicht gefunden.
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.
Anhänge:
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- fertac
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 93
13 Jahre 5 Monate her #442
von fertac
fertac antwortete auf Aw: Umlaute, Sonderzeichen und Co.
Hallo Herr Stark,
danke für die schnelle Antwort.
Das Problem liegt aber nicht auf der read sondern auf der write Seite. Wenn ich in der replace.csv das eintrage:
öffnen; noch nicht geöffnet // write Seite ...ge?ffnet
1/3" ; 1/3" oder größer // write Seite "1/3""...
ändern; noch nicht geändert // write Seite ...ge?ndert
Beide Seiten sind auf Code 1252 eingestellt wie in ihrem Beispiel.
Viele Grüße
fertac
danke für die schnelle Antwort.
Das Problem liegt aber nicht auf der read sondern auf der write Seite. Wenn ich in der replace.csv das eintrage:
öffnen; noch nicht geöffnet // write Seite ...ge?ffnet
1/3" ; 1/3" oder größer // write Seite "1/3""...
ändern; noch nicht geändert // write Seite ...ge?ndert
Beide Seiten sind auf Code 1252 eingestellt wie in ihrem Beispiel.
Viele Grüße
fertac
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
13 Jahre 5 Monate her #443
von FlowHeater-Team
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.
FlowHeater-Team antwortete auf Aw: Umlaute, Sonderzeichen und Co.
Mit welchen Editor bzw. Programm schauen Sie sich denn die Ausgabe Daten an? Funktioniert mein Beispiel mit den Umlauten bei Ihnen?
Für eine weitere Analyse benötige ich Ihre Defintion, die replace.csv sowie (Test) Eingangsdaten mit dennen das nachgstellt werden kann. Bitte alles in ein ZIP Archiv packen und hier einstellen.
Für eine weitere Analyse benötige ich Ihre Defintion, die replace.csv sowie (Test) Eingangsdaten mit dennen das nachgstellt werden kann. Bitte alles in ein ZIP Archiv packen und hier einstellen.
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.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- fertac
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 93
13 Jahre 5 Monate her #447
von fertac
fertac antwortete auf Aw: Umlaute, Sonderzeichen und Co.
Hallo Herr Stark,
hier die .zip Datei mit dem Beispiel.
In der input Datei steht:
djk hfdk fhdk fkjd1/3"hfkdhf kd hfkdhfkdhkfjh dkjfh dkfhdkjhf kdjhf jdhfdkjfddkfh dkfhdkj
Auf der reade Seite:
"djk hfdk fhdk fkjd1/3""hfkdhf kd hfkdhfkdhkfjh dkjfh dkfhdkjhf kdjhf jdhfdkjfddkfh dkfhdkj"
Auf der write Seite:
Sonstiges // da der Begriff nicht gefunden wurde
Viele Grüße
fertac
hier die .zip Datei mit dem Beispiel.
In der input Datei steht:
djk hfdk fhdk fkjd1/3"hfkdhf kd hfkdhfkdhkfjh dkjfh dkfhdkjhf kdjhf jdhfdkjfddkfh dkfhdkj
Auf der reade Seite:
"djk hfdk fhdk fkjd1/3""hfkdhf kd hfkdhfkdhkfjh dkjfh dkfhdkjhf kdjhf jdhfdkjfddkfh dkfhdkj"
Auf der write Seite:
Sonstiges // da der Begriff nicht gefunden wurde
Viele Grüße
fertac
Anhang fertac_replace.zip wurde nicht gefunden.
Anhänge:
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
13 Jahre 5 Monate her #448
von FlowHeater-Team
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.
FlowHeater-Team antwortete auf Aw: Umlaute, Sonderzeichen und Co.
Hallo Herr Kappen,
mit folgenden Script wird die replace.csv Datei nun auch mit der gleichen Codepage geöffnet wie gelesen bzw. geschrieben wird. Bitte versuchen Sie es mit diesem Skript erneut.
Es hat sich nur folgende Zeile geändert!
csv = File.ReadAllLines("replace.csv", Encoding.Default);
mit folgenden Script wird die replace.csv Datei nun auch mit der gleichen Codepage geöffnet wie gelesen bzw. geschrieben wird. Bitte versuchen Sie es mit diesem Skript erneut.
Es hat sich nur folgende Zeile geändert!
csv = File.ReadAllLines("replace.csv", Encoding.Default);
Code:
string [] csv = null;
public object DoWork()
{
string sRet = null;
// CSV replace daten einlesen
if (csv == null)
csv = File.ReadAllLines("replace.csv", Encoding.Default);
string sIN = (String)InValues[0].GetString();
if (sIN == null)
return null;
// Über alle Zeilen der replace.csv Datei lesen
foreach(string line in csv)
{
char [] trennzeichen = { ';' }; //
string [] values = line.Split(trennzeichen);
// kommt der 1. Wert der CSV Datei im IN Parameter vor,
// dann den 2. Wert der CSV zurückgeben.
if (sIN.IndexOf(values[0], StringComparison.CurrentCultureIgnoreCase) >= 0)
{
sRet = values[1];
break;
}
}
if (sRet == null)
sRet = "Sonstiges"; // hier ggf. den Wert ändern falls nichts zutreffend!
return sRet;
}
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.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- fertac
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 93
13 Jahre 5 Monate her #453
von fertac
fertac antwortete auf Aw: Umlaute, Sonderzeichen und Co.
Hallo Herr Stark,
danke für die schnelle Antwort.
Das mit den Umlauten funktioniert jetzt sehr gut.
Aber das Thema " klappt noch nicht. Sobald in der input Datei ein " vorkommt setzt die readseite das wiederum in Anführungsstriche. Das sieht dann immer noch so wie oben beschrieben aus.
Danke für ihre guten Nerven und Geduld.
Viele Grüße
fertac
danke für die schnelle Antwort.
Das mit den Umlauten funktioniert jetzt sehr gut.
Aber das Thema " klappt noch nicht. Sobald in der input Datei ein " vorkommt setzt die readseite das wiederum in Anführungsstriche. Das sieht dann immer noch so wie oben beschrieben aus.
Danke für ihre guten Nerven und Geduld.
Viele Grüße
fertac
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
13 Jahre 5 Monate her #455
von FlowHeater-Team
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.
FlowHeater-Team antwortete auf Aw: Umlaute, Sonderzeichen und Co.
Hallo Herr Kappen,
das liegt daran, dass Sie Hochkommas in Ihrer replace.csv stehen haben
Ändern Sie mal die Zeile
"1/3""";"1/3"" Rohr oder größer ohne zu ändern "
auf
1/3";1/3" Rohr oder größer ohne zu ändern
Dann sollte es funktionieren.
das liegt daran, dass Sie Hochkommas in Ihrer replace.csv stehen haben
Ändern Sie mal die Zeile
"1/3""";"1/3"" Rohr oder größer ohne zu ändern "
auf
1/3";1/3" Rohr oder größer ohne zu ändern
Dann sollte es funktionieren.
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.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- fertac
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 93
13 Jahre 5 Monate her #456
von fertac
fertac antwortete auf Aw: Umlaute, Sonderzeichen und Co.
Hallo Herr Stark,
jetzt kommen wir der Sache schon näher.
Offensichtlich sehen sie beim öffnen der Excel-Datei replace.csv folgendes:
"1/3""";"1/3"" Rohr oder größer ohne zu ändern "
Ich sehe beim öffnen der Datei mit Excel:
1/3";1/3" Rohr oder größer ohne zu ändern
(siehe .jpg)
Mein Eintrag scheint somit richtig zu sein.
Im FlowHeater - Text File Viewer sehe ich dann auch wieder:
"1/3""";"1/3"" Rohr oder größer ohne zu ändern "
Die Veränderung findet dann wohl beim Einlesen nach FlowHeater statt.
Viele Grüße
fertac
jetzt kommen wir der Sache schon näher.
Offensichtlich sehen sie beim öffnen der Excel-Datei replace.csv folgendes:
"1/3""";"1/3"" Rohr oder größer ohne zu ändern "
Ich sehe beim öffnen der Datei mit Excel:
1/3";1/3" Rohr oder größer ohne zu ändern
(siehe .jpg)
Mein Eintrag scheint somit richtig zu sein.
Im FlowHeater - Text File Viewer sehe ich dann auch wieder:
"1/3""";"1/3"" Rohr oder größer ohne zu ändern "
Die Veränderung findet dann wohl beim Einlesen nach FlowHeater statt.
Viele Grüße
fertac
Anhang fertac_replace-20110603-3.zip wurde nicht gefunden.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
13 Jahre 5 Monate her #457
von FlowHeater-Team
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.
FlowHeater-Team antwortete auf Aw: Umlaute, Sonderzeichen und Co.
Hallo Herr Kappen,
CSV Dateien mit Excel zu öffnen kann ich Ihnen nicht empfehlen! Excel zeigt Ihnen hier was Falsches an. Bitte öffnen Sie Ihre CSV Datei mal mit Notepad, dann sehen Sie, dass hier in der letzten Zeile Hochkommas vorhanden sind!
Die äußeren Hochkommas können Sie auf der READ Seite eliminieren wenn Sie im TextFile Adapter auf dem Reiter Trennzeichen für die Textbegrenzung "abc" einstellen.
CSV Dateien mit Excel zu öffnen kann ich Ihnen nicht empfehlen! Excel zeigt Ihnen hier was Falsches an. Bitte öffnen Sie Ihre CSV Datei mal mit Notepad, dann sehen Sie, dass hier in der letzten Zeile Hochkommas vorhanden sind!
Die äußeren Hochkommas können Sie auf der READ Seite eliminieren wenn Sie im TextFile Adapter auf dem Reiter Trennzeichen für die Textbegrenzung "abc" einstellen.
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.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- fertac
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 93
13 Jahre 5 Monate her #458
von fertac
fertac antwortete auf Aw: Umlaute, Sonderzeichen und Co.
Hallo Herr Stark,
ja das ist ein Weg der funktioniert.
Eine andere Lösung ist eine Excel-Datei einzulesen und eine Excel-Datei auszugeben. Dann gibt es kein Problem mehr mit den ".
Eine weitere Lösung aus einer Excel-Datei eine .csv-Datei ohne "-Probleme zu generieren habe ich hier.
Der VB-Script gehört in eine Excel-Datei die in .csv gewandelt werden soll. Hier wird eine .csv Datei mit gleichem Namen im gleichen Ordner erstellt.
Public Sub prcCreateCSV()
Dim intFileNumber As Integer
Dim lngRow As Long
Reset
intFileNumber = FreeFile
With ThisWorkbook
.Save
Open .Path & "\" & Left$(.Name, Len(.Name) - 4) & _
".csv" For Output As #intFileNumber
End With
With ActiveSheet.UsedRange
For lngRow = 1 To .Row + .Rows.Count - 1
Print #intFileNumber, Join(WorksheetFunction.Transpose( _
WorksheetFunction.Transpose(Range(Cells(lngRow, 1), _
Cells(lngRow, .Column + .Columns.Count - 1)))), ";")
Next
End With
Close #intFileNumber
End Sub
Viele Grüße
fertac
ja das ist ein Weg der funktioniert.
Eine andere Lösung ist eine Excel-Datei einzulesen und eine Excel-Datei auszugeben. Dann gibt es kein Problem mehr mit den ".
Eine weitere Lösung aus einer Excel-Datei eine .csv-Datei ohne "-Probleme zu generieren habe ich hier.
Der VB-Script gehört in eine Excel-Datei die in .csv gewandelt werden soll. Hier wird eine .csv Datei mit gleichem Namen im gleichen Ordner erstellt.
Public Sub prcCreateCSV()
Dim intFileNumber As Integer
Dim lngRow As Long
Reset
intFileNumber = FreeFile
With ThisWorkbook
.Save
Open .Path & "\" & Left$(.Name, Len(.Name) - 4) & _
".csv" For Output As #intFileNumber
End With
With ActiveSheet.UsedRange
For lngRow = 1 To .Row + .Rows.Count - 1
Print #intFileNumber, Join(WorksheetFunction.Transpose( _
WorksheetFunction.Transpose(Range(Cells(lngRow, 1), _
Cells(lngRow, .Column + .Columns.Count - 1)))), ";")
Next
End With
Close #intFileNumber
End Sub
Viele Grüße
fertac
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
Ladezeit der Seite: 0.332 Sekunden