@@ -1690,6 +1690,13 @@ public static AbstractCobolField funcNational(AbstractCobolField srcfield) {
1690
1690
return currField ;
1691
1691
}
1692
1692
1693
+ /**
1694
+ * cob_intr_combined_datetimeの実装
1695
+ *
1696
+ * @param srcdays
1697
+ * @param srctime
1698
+ * @return
1699
+ */
1693
1700
public static AbstractCobolField funcCombinedDatetime (
1694
1701
AbstractCobolField srcdays , AbstractCobolField srctime ) {
1695
1702
int srdays ;
@@ -1724,4 +1731,43 @@ public static AbstractCobolField funcCombinedDatetime(
1724
1731
currField .getDataStorage ().memcpy (buff );
1725
1732
return currField ;
1726
1733
}
1734
+
1735
+ /**
1736
+ * cob_intr_concatenateの実装
1737
+ *
1738
+ * @param offset
1739
+ * @param length
1740
+ * @param params
1741
+ * @param fields
1742
+ * @return
1743
+ */
1744
+ public static AbstractCobolField funcConcatenate (
1745
+ int offset , int length , int params , AbstractCobolField ... fields ) {
1746
+ int calcsize = 0 ;
1747
+ int i ;
1748
+ int index = 0 ;
1749
+ int size ;
1750
+ byte [] data ;
1751
+
1752
+ for (i = 0 ; i < params ; i ++) {
1753
+ calcsize += fields [i ].getSize ();
1754
+ }
1755
+ CobolFieldAttribute attr =
1756
+ new CobolFieldAttribute (CobolFieldAttribute .COB_TYPE_ALPHANUMERIC , 0 , 0 , 0 , null );
1757
+ AbstractCobolField field =
1758
+ CobolFieldFactory .makeCobolField (calcsize , (CobolDataStorage ) null , attr );
1759
+ makeFieldEntry (field );
1760
+ data = new byte [calcsize ];
1761
+ for (i = 0 ; i < params ; i ++) {
1762
+ size = fields [i ].getSize ();
1763
+ System .arraycopy (
1764
+ fields [i ].getDataStorage ().getByteBuffer (size ).array (), 0 , data , index , size );
1765
+ index += size ;
1766
+ }
1767
+ currField .setDataStorage (new CobolDataStorage (data ));
1768
+ if (offset > 0 ) {
1769
+ calcRefMod (currField , offset , length );
1770
+ }
1771
+ return currField ;
1772
+ }
1727
1773
}
0 commit comments