我想補充一下Kwebble和Shawn S所說的。我可以使用JTOpen來做到這一點。
我需要寫入一個字段,它是6 0P(6個字節,沒有小數點以後,打包)。對於那些不喜歡DDM的人來說,這是一個小數(11,0)。
AS400PackedDecimal convertedCustId = new AS400PackedDecimal(11, 0);
byte[] packedCust = convertedCustId.toBytes((int) custId);
String packedCustStr = new String(packedCust, "Cp037");
StringBuilder jcommData = new StringBuilder();
jcommData.append(String.format("%6s", packedCustStr));
是的,我用庫KWebble提到過。如Shawn S所提到的那樣查看DSPPFD,我發現該表使用的是CCSID 37.這起作用。
我最初嘗試使用Cp1047,按照Alan Krueger的建議。它似乎工作。不幸的是,如果我的custId以5結尾,渲染到文件中的數據是B0而不是5F。將其更改爲Cp037可以解決該問題。
您是否需要處理重新定義和打包的記錄,或者這是直接轉換? – kemiller2002 2008-12-15 15:11:41