-
wir verwenden SED
/* -------------------------------------------------------------------------- */
/* ACHTUNG "; ; ; ; ; ;" IST NACH DEM SED */
/* ";; ;; ; ;" ER FINDET "; ;" TAUSCHT ES IN ;; UND FINDET DAHINTER */
/* " ; ; ; ;" DARAUS WIRD " ;; ; ;" */
/* " ; ;" DARAUS WIRD " ;;" */
/* GESAMTERGEBNISS : ";; ;; ;;" */
/* D.H. UM ALLE BLANK ZU ELEMINIREN IST SED 2 * ERFORDERLICH !!! */
/* -------------------------------------------------------------------------- */
RMV_BLANK: /* s = suche '; ;' tausche in ';;' g = global, alle vorkommen */
CHGVAR VAR(&QSH) VALUE('SED s/''; ;''/'';;''/g' *BCAT &P2 *BCAT '>' *CAT &PFAD)
STRQSH CMD(&QSH)
&P2 ist /pfad/der/datei/incl/datei.csv
&Pfad ist das gleiche (anderer Dateiname)
Robi
Das Notwendige steht über dem technisch machbaren.
(klingt komisch, funktioniert aber!)
-
Bei den ganzen Klimmzügen weiß ich schon, warum ich CSV's per SQL und CPYTOSTMF erstelle ;-).
-
Moin Moin *ALL
ich habe ein ähnliches Problem gestern auch gehabt, bei mir hat es funktioniert indem ich die Codepages explizit angegben habe:
QSYS/CPYTOIMPF FROMFILE(liba/filea) +
TOSTMF('/HOME/export/path/filea.csv')
MBROPT(*REPLACE) FROMCCSID(273) +
STMFCCSID(1250) RCDDLM(*CR) DTAFMT(*DLM) +
STRDLM(*DBLQUOTE) RMVBLANK(*BOTH) +
FLDDLM(';') NULLIND(*YES) DECPNT(*COMMA) +
ADDCOLNAM(*SYS)
MONMSG CPF2817
Dabei war der Knackpunkt die CP 1250 MS Win Latin2 und nicht die Standard CP 1252 zu verwenden, dann erscheint X'0' immer als @.
Mit der 1250 sehen die Felder dann auch im Excel korrekt aus...
Vielleicht hilft Die das auch!
Volker
-
Vielen Dank Euch soweit. Leider hat noch nichts wirklich zum Ziel geführt - leider (V5R4) aber teilweise auch mit anderen Releases nicht. Das einzigste womit ich es wirklich zuverlässig hinbekomme ist das %NULLIND im RPG . Aber ich werde nochmals alles durchprobieren... Danke
PS: Das mit "SED" wollte ich nicht nutzen......
-
SED wurde bei mir auch zu 5.4 er Zeiten ohne RMVBLANK(*BOTH) erdacht.
Nachdem wir festgestellt hatten das es 2 mal laufen muß läuft es stabil und einigermassen schnell.
(8-9 Mio Datensätze in 3-5 Minuten auf einem /qntc/ gemapten PC
Robi
Das Notwendige steht über dem technisch machbaren.
(klingt komisch, funktioniert aber!)
-
Also 273 nach 1250 ist schon gewagt, da 1250 der 870 (polnisch) entspricht.
Da sind wohl die Daten von einem Nicht-273-Terminal erfasst worden.
Ansonsten per SQL:
select
trim(f1) concat ";" concat
trim(char(f2)) concat ";"
:
from mytable
where
...
Das Ergebnis lässt sich sehr schön als CSV weitergeben.
-
Ich hatte das mit *BOTH nun einige male versucht - aber immer wieder bringt er mir die Felder " "; " "; usw... Das mit SQL ist auch nett Fuerchau - Danke. mal sehen wie ich es löse... Danke
-
... man kann natürrlich auch die Blanks per SQL View mit einem Käse Konstrukt wieder gegen Null Values tauschen und dann den CPYTOIMPFD machen...
D*B
Similar Threads
-
By alexk2013 in forum NEWSboard Programmierung
Antworten: 6
Letzter Beitrag: 14-05-14, 12:33
-
By hs in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 31-01-14, 11:49
-
By alex in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 03-06-03, 08:22
-
By Sigma in forum IBM i Hauptforum
Antworten: 5
Letzter Beitrag: 23-04-03, 13:48
-
By KB in forum IBM i Hauptforum
Antworten: 0
Letzter Beitrag: 18-05-01, 15:04
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks