jglunde
18th August 2006, 13:23
Sehr geehrte Damen und Herren,

wir haben ein Problem mit unserem internen EDI, BAAN IV C4, SP 15. Wir haben Artikelcodes mit Komma, die aber von EDI nicht erkannt werden. Folglich werden die Kommata herausgenommen, EDI läuft auf Fehler bei Auswertung, EDI-Nachricht ist nicht mehr zu rekonstruieren, weil Felder verschoben sind, usw.

Hat jemand eine IDEE oder gar einen Lösungsvorschlag?
Über schnelle Hilfe würden wir uns freuen. :)

richard
18th August 2006, 17:16
Hallo,

Vielleicht könnten Sie es versuchen das Feld tcedi020.deli zu ändern.
Ein Komma in Artikelcodes ist aber keine gute Idee (csv Files zB in England gebrauchen das Komma anstatt ;).

MfG

norwim
22nd August 2006, 15:21
Hallo,

mal davon ausgehend, dass Ihr die Kommata in der Artikelbezeichnung braucht, wuerde ich als einfache Loesung awk vorschlagen.
Egal, ob das Problem bei eingehenden oder ausgehenden Nachrichten besteht, muessten vor der EDI-Routine die stoerenden Kommata entfernt werden.
Wenn im Artikelstamm nur ein Komma vorkommen kann, ist das recht simpel.
Da Du davon redest, dass Felder verschoben werden, gehe ich davon aus, dass in der Textdatei das Komma als Separator verwendet wird.
Kann nun tatsaechlich nur EIN stoerendes Komma existieren, und dies nur im Feld x, so wuerde die folgende awk Routine helfen (die Datei habe y Felder):
----------awkkomma--------
BEGIN{FS=","}
{if (NF==y) {print $0;next}}
{ out="";
for (i=1;i<x;i++) out=out "," $i;
out=out "," $x "_" $(x+1);
for (i=x+2;i<=NF;i++) out=out "," $i;
print out}
-------Ende Datei awkkomma-----
Aufruf: awk -f awkkomma NAME_DER_DATEI > neue_datei

Wenn Ihr die Quelle des Programms habt, welches die EDI-Datei erzeugt, waere es allerdings viel cleverer, dort vor der Ausgabe stoerende Kommata direkt zu ersetzen.

Wenn meine Annahme, dass Ihr Kommazeichen als Feldtrenner benutzt, falsch ist, und ALLE Kommazeichen ersetzt werden koennen, kann man das Problem sogar noch einfacher loesen:
cat DATEINAME | tr -d "," > neue_datei.

awk und tr sind (z.B. bei cygwin) auch fuer M$ Systeme verfuegbar.

hth

Norbert

vsauer
10th October 2006, 15:53
Kann man nicht einfach das zeichen konvertieren ?