PDA

View Full Version : Wert aus CSV Datei



mk
20-06-06, 13:24
Hallo zusammen,

ich verarbeite mit einem RPG Programm eine CSV Datei.
Jetzt hat sich herausgestellt das in einem Feld
z.B. folgender Wert auftaucht:

8,22485567837319e-03

Der Wert soll in ein numerisches 7,3 Feld.

Hat jemand einen Tipp ? Oder sollte ich lieber die PC Jungs
die die Datei erstellen das ändern lassen .

Gruss
Michael

Fuerchau
20-06-06, 13:27
Die Build-In heißt hier %FLOAT !
Diese kann dann gekapselt werden:

mydec = %dec(%float(MyChar):15:5);

mk
20-06-06, 13:50
Hallo Baldur,

ich habe mir folgendes Demo Programm erstellt:




dParm s 2000

dP1 s 7 2

c eval Parm = '8,22485567837319e-03'
c eval P1 = %dec(%float(%trim(parm))
c :7 :2)
c p1 dsply

c seton lr




Allerdings enthält die Variable P1 nur den Wert 0

Was mache ich hier falsch ?

Gruss
Michael

Fuerchau
20-06-06, 14:45
Also 8,22..e-03 = 0,00822...

Erklärt das das ?

mk
20-06-06, 14:47
Oje oje


ich schäme mich ja so

Gruss
Michael

karin-vogelmann
20-12-06, 15:46
hallo,

ich würde auch gerne eine csv.datei mit rpg einlesen, bin aber nicht mehr auf dem neuesten stand der programmierung und leicht eingerostet und wie das mit dem stmf's überhaupt geht...

kann mir jemand ein schnelles rpg-gerüst zukommen lassen?

hintergrund: csv-datei liegt im ifs in einem unterverzeichnis /tmp/asdf/xy.csv.

die datei enthält 2 spalten, artikel und menge (ja, es hat mit inventur zu tun...):
4711;1;
4712;45;
4713;0;

und das ganze würde ich gerne einlesen und in unser ERP injizieren, das aus ganz normalen physischen files besteht.

danke schon jetzt im voraus!

lg, karin

mk
20-12-06, 16:03
Hallo Karin,

hier eine kleine Anweisung wie man es machen könnte

Eine ph Tabelle mit den zwei Feldern anlegen

CREATE TABLE TESTCSV(ARTIKEL CHAR (10 ) NOT NULL WITH DEFAULT, QTY
DEC (7 , 0) NOT NULL WITH DEFAULT)

dann den Befehl
CPYFRMIMPF FROMSTMF('/asmtool/test/testfile.csv') TOFILE(MK/TESTCS
V) RCDDLM(*CRLF) STRDLM(*NONE) FLDDLM(';') RPLNULLVAL(*FLDDFT)

Damit stehen in der Tabelle deine Werte und Du brauchst
( nur ) noch dein Übernahmeprogramm schreiben.

Gruss
Michael

BenderD
20-12-06, 16:18
Hallo,

das CPYTOIMPF Gerödel kann man sich schenken, wenn man das Streamfile direkt liest (gibt es auch eine Quelle für ein fertiges Service Programm auf meiner Open Source Seite).

mfg

Dieter Bender


Hallo Karin,

hier eine kleine Anweisung wie man es machen könnte

Eine ph Tabelle mit den zwei Feldern anlegen

CREATE TABLE TESTCSV(ARTIKEL CHAR (10 ) NOT NULL WITH DEFAULT, QTY
DEC (7 , 0) NOT NULL WITH DEFAULT)

dann den Befehl
CPYFRMIMPF FROMSTMF('/asmtool/test/testfile.csv') TOFILE(MK/TESTCS
V) RCDDLM(*CRLF) STRDLM(*NONE) FLDDLM(';') RPLNULLVAL(*FLDDFT)

Damit stehen in der Tabelle deine Werte und Du brauchst
( nur ) noch dein Übernahmeprogramm schreiben.

Gruss
Michael

karin-vogelmann
21-12-06, 08:01
hallo!

erst mal danke für die antworten!!

das mit create table und cpyfromimpf habe ich probiert, klappt wunderbar, reicht auch für's erste völlig aus.

das mit den sourcen zum sofort-einlesen aus dem ifs ist mir heute morgen noch zu heftig, dachte, das wäre einfacher...

nochmals vielen dank und schöne feiertage!

lg, karin

mk
21-12-06, 08:56
Hallo Karin,

für solche Übernahmeaktionen habe ich extra das Tool
CreateOSDb erstellt. Damit kannst Du direkt eine Exceldatei
auf der AS/400 einlesen und sofort ein Programm mit angeben.
Somit läuft dann alles automatisch ab.
Vielleicht ist es etwas für dich.

Frage: Was machen denn eure VARPG Aktivitäten.
Gruss
Michael