This commit is contained in:
LORENZO\pacio 2024-10-23 13:07:39 +02:00
parent 62ddd3cb71
commit 6c8d65a3ef
8 changed files with 689 additions and 0 deletions

23
.project Normal file
View File

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>montevibiano_sian</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
</natures>
</projectDescription>

28
pom.xml Normal file
View File

@ -0,0 +1,28 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>pi</groupId>
<artifactId>mvtxt</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>montevibiano_txt</name>
<dependencies>
<!-- https://mvnrepository.com/artifact/com.ancientprogramming.fixedformat4j/fixedformat4j -->
<dependency>
<groupId>com.ancientprogramming.fixedformat4j</groupId>
<artifactId>fixedformat4j</artifactId>
<version>1.2.2</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.20</version>
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.beanio/beanio -->
<dependency>
<groupId>org.beanio</groupId>
<artifactId>beanio</artifactId>
<version>2.1.0</version>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,60 @@
package com.pi.txtsian.ents;
import java.util.ArrayList;
import java.util.List;
import com.ancientprogramming.fixedformat4j.format.FixedFormatManager;
import com.ancientprogramming.fixedformat4j.format.impl.FixedFormatManagerImpl;
public class AnagfctoFile {
private List<AnagfctoRow> _Righe = new ArrayList<AnagfctoRow>();
public List<AnagfctoRow> getRighe(){
return this._Righe;
}
public void setRighe(List<AnagfctoRow> in){
this._Righe = in;
}
public void addRiga(AnagfctoRow in) {
this._Righe.add(in);
}
public byte[] getByteArray() {
String rs = "";
FixedFormatManager manager = new FixedFormatManagerImpl();
//scorro tutti i miei row, converto e inserisco delimitatori di campo
for(AnagfctoRow r : this._Righe) {
String exportedString = manager.export(r);
char[] ch = new char[361];
//in posizione 360 carattere ;
for (int i = 0; i < exportedString.length(); i++) {
ch[i] = exportedString.charAt(i);
}
int[] pos = {16,19,36,47,198,349,352,356,360};
for (int i=0; i<pos.length; i++)
{
ch[pos[i]] = ';';
}
//System.setProperty("line.separator", "\r\n");
rs = rs+new String(ch).concat("\r\n");
}
return rs.getBytes();
}
}

View File

@ -0,0 +1,78 @@
package com.pi.txtsian.ents;
import com.ancientprogramming.fixedformat4j.annotation.Align;
import com.ancientprogramming.fixedformat4j.annotation.Field;
import com.ancientprogramming.fixedformat4j.annotation.Record;
import lombok.Setter;
@Record
public class AnagfctoRow {
@Setter
private String C01;
@Setter
private String C02;
@Setter
private String C03;
@Setter
private String C04;
@Setter
private String C05;
@Setter
private String C06;
@Setter
private String C07;
@Setter
private String C08;
@Setter
private String C09;
/////////////////////////////////////////////////////////////////////////////////////////////
@Field(offset=1,length = 16,align = Align.LEFT,paddingChar = ' ')
public String getC01() {
return C01;
}
@Field(offset=18,length = 2,align = Align.LEFT,paddingChar = ' ')
public String getC02() {
return C02;
}
@Field(offset=21,length = 16,align = Align.LEFT,paddingChar = ' ')
public String getC03(){
return C03;
}
@Field(offset=38,length = 10,align = Align.RIGHT,paddingChar = '0')
public String getC04(){
return C04;
}
@Field(offset=49,length = 150,align = Align.LEFT,paddingChar = ' ')
public String getC05(){
return C05;
}
@Field(offset=200,length = 150,align = Align.LEFT,paddingChar = ' ')
public String getC06(){
return C06;
}
@Field(offset=351,length = 2,align = Align.LEFT,paddingChar = ' ')
public String getC07(){
return C07;
}
@Field(offset=354,length = 3,align = Align.LEFT,paddingChar = ' ')
public String getC08(){
return C08;
}
@Field(offset=358,length = 3,align = Align.LEFT,paddingChar = ' ')
public String getC09(){
return C09;
}
}

View File

@ -0,0 +1,67 @@
package com.pi.txtsian.ents;
import java.util.ArrayList;
import java.util.List;
import com.ancientprogramming.fixedformat4j.format.FixedFormatManager;
import com.ancientprogramming.fixedformat4j.format.impl.FixedFormatManagerImpl;
public class OperregiFile {
private List<OperregiRow> _Righe = new ArrayList<OperregiRow>();
public List<OperregiRow> getRighe(){
return this._Righe;
}
public void setRighe(List<OperregiRow> in){
this._Righe = in;
}
public void addRiga(OperregiRow in) {
this._Righe.add(in);
}
public byte[] getByteArray() {
String rs = "";
FixedFormatManager manager = new FixedFormatManagerImpl();
//non usare, length array non corretta
//ch = exportedString.toCharArray();
//scorro tutti i miei row, converto e inserisco delimitatori di campo
for(OperregiRow r : this._Righe) {
String exportedString = manager.export(r);
char[] ch = new char[877];
//in posizione 877 carattere ;
for (int i = 0; i < exportedString.length(); i++) {
ch[i] = exportedString.charAt(i);
}
int[] pos = {16,27,38,47,58,67,78,89,100,114,128,139,150,161,164,167,170,251,254,335,349,363,377,391,405,419,433,454,755,757,759,761,763,765,767,769,771,773,775,777,795,813,818,829,840,854,863,874,876};
for (int i=0; i<pos.length; i++)
{
ch[pos[i]] = ';';
}
//inserisco la riga in String appoggio rs
//aggiungo accapo
//rs = rs+new String(ch).concat("\n\r");// +"\n\r";
//System.setProperty("line.separator", "\r\n");
rs = rs+new String(ch).concat("\r\n");
}
return rs.getBytes();
}
}

View File

@ -0,0 +1,362 @@
package com.pi.txtsian.ents;
import com.ancientprogramming.fixedformat4j.annotation.Align;
import com.ancientprogramming.fixedformat4j.annotation.Field;
import com.ancientprogramming.fixedformat4j.annotation.Record;
import lombok.Setter;
@Record
public class OperregiRow {
@Setter
private String C01;
@Setter
private String C02;
@Setter
private String C03;
@Setter
private String C04;
@Setter
private String C05;
@Setter
private String C06;
@Setter
private String C07;
@Setter
private String C08;
@Setter
private String C09;
@Setter
private String C10;
@Setter
private String C11;
@Setter
private String C12;
@Setter
private String C13;
@Setter
private String C14;
@Setter
private String C15;
@Setter
private String C16;
@Setter
private String C17;
@Setter
private String C18;
@Setter
private String C19;
@Setter
private String C20;
@Setter
private String C21;
@Setter
private String C22;
@Setter
private String C23;
@Setter
private String C24;
@Setter
private String C25;
@Setter
private String C26;
@Setter
private String C27;
@Setter
private String C28;
@Setter
private String C29;
@Setter
private String C30;
@Setter
private String C31;
@Setter
private String C32;
@Setter
private String C33;
@Setter
private String C34;
@Setter
private String C35;
@Setter
private String C36;
@Setter
private String C37;
@Setter
private String C38;
@Setter
private String C39;
@Setter
private String C40;
@Setter
private String C41;
@Setter
private String C42;
@Setter
private String C43;
@Setter
private String C44;
@Setter
private String C45;
@Setter
private String C46;
@Setter
private String C47;
@Setter
private String C48;
@Setter
private String C49;
///////////////////////////////////////////////////////////////////
@Field(offset=1,length = 16,align = Align.LEFT,paddingChar = ' ')
public String getC01() {
return C01;
}
@Field(offset=18,length = 10,align = Align.RIGHT,paddingChar = '0')
public String getC02() {
return C02;
}
@Field(offset=29,length = 10,align = Align.RIGHT,paddingChar = '0')
public String getC03(){
return C03;
}
@Field(offset=40,length = 8,align = Align.RIGHT,paddingChar = ' ')
public String getC04(){
return C04;
}
@Field(offset=49,length = 10,align = Align.LEFT,paddingChar = ' ')
public String getC05(){
return C05;
}
@Field(offset=60,length = 8,align = Align.RIGHT,paddingChar = ' ')
public String getC06(){
return C06;
}
@Field(offset=69,length = 10,align = Align.LEFT,paddingChar = ' ')
public String getC07(){
return C07;
}
@Field(offset=80,length = 10,align = Align.RIGHT,paddingChar = '0')
public String getC08(){
return C08;
}
@Field(offset=91,length = 10,align = Align.RIGHT,paddingChar = '0')
public String getC09(){
return C09;
}
@Field(offset=102,length = 13,align = Align.RIGHT,paddingChar = '0')
public String getC10(){
return C10;
}
@Field(offset=116,length = 13,align = Align.RIGHT,paddingChar = '0')
public String getC11(){
return C11;
}
@Field(offset=130,length = 10,align = Align.LEFT,paddingChar = ' ')
public String getC12(){
return C12;
}
@Field(offset=141,length = 10,align = Align.LEFT,paddingChar = ' ')
public String getC13(){
return C13;
}
@Field(offset=152,length = 10,align = Align.RIGHT,paddingChar = '0')
public String getC14(){
return C14;
}
@Field(offset=163,length = 2,align = Align.RIGHT,paddingChar = '0')
public String getC15(){
return C15;
}
@Field(offset=166,length = 2,align = Align.RIGHT,paddingChar = '0')
public String getC16(){
return C16;
}
@Field(offset=169,length = 2,align = Align.RIGHT,paddingChar = '0')
public String getC17(){
return C17;
}
@Field(offset=172,length = 80,align = Align.LEFT,paddingChar = ' ')
public String getC18(){
return C18;
}
@Field(offset=253,length = 2,align = Align.RIGHT,paddingChar = '0')
public String getC19(){
return C19;
}
@Field(offset=256,length = 80,align = Align.LEFT,paddingChar = ' ')
public String getC20(){
return C20;
}
@Field(offset=337,length = 13,align = Align.RIGHT,paddingChar = '0')
public String getC21(){
return C21;
}
@Field(offset=351,length = 13,align = Align.RIGHT,paddingChar = '0')
public String getC22(){
return C22;
}
@Field(offset=365,length = 13,align = Align.RIGHT,paddingChar = '0')
public String getC23(){
return C23;
}
@Field(offset=379,length = 13,align = Align.RIGHT,paddingChar = '0')
public String getC24(){
return C24;
}
@Field(offset=393,length = 13,align = Align.RIGHT,paddingChar = '0')
public String getC25(){
return C25;
}
@Field(offset=407,length = 13,align = Align.RIGHT,paddingChar = '0')
public String getC26(){
return C26;
}
@Field(offset=421,length = 13,align = Align.RIGHT,paddingChar = '0')
public String getC27(){
return C27;
}
@Field(offset=435,length = 20,align = Align.LEFT,paddingChar = ' ')
public String getC28(){
return C28;
}
@Field(offset=456,length = 300,align = Align.LEFT,paddingChar = ' ')
public String getC29(){
return C29;
}
///////////////FLAG CON X
@Field(offset=757,length = 1,align = Align.LEFT,paddingChar = ' ')
public String getC30(){
return C30;
}
@Field(offset=759,length = 1,align = Align.LEFT,paddingChar = ' ')
public String getC31(){
return C31;
}
@Field(offset=761,length = 1,align = Align.LEFT,paddingChar = ' ')
public String getC32(){
return C32;
}
@Field(offset=763,length = 1,align = Align.LEFT,paddingChar = ' ')
public String getC33(){
return C33;
}
@Field(offset=765,length = 1,align = Align.LEFT,paddingChar = ' ')
public String getC34(){
return C34;
}
@Field(offset=767,length = 1,align = Align.LEFT,paddingChar = ' ')
public String getC35(){
return C35;
}
@Field(offset=769,length = 1,align = Align.LEFT,paddingChar = ' ')
public String getC36(){
return C36;
}
@Field(offset=771,length = 1,align = Align.LEFT,paddingChar = ' ')
public String getC37(){
return C37;
}
@Field(offset=773,length = 1,align = Align.LEFT,paddingChar = ' ')
public String getC38(){
return C38;
}
@Field(offset=775,length = 1,align = Align.LEFT,paddingChar = ' ')
public String getC39(){
return C39;
}
@Field(offset=777,length = 1,align = Align.LEFT,paddingChar = ' ')
public String getC40(){
return C40;
}
@Field(offset=779,length = 17,align = Align.LEFT,paddingChar = ' ')
public String getC41(){
return C41;
}
@Field(offset=797,length = 17,align = Align.LEFT,paddingChar = ' ')
public String getC42(){
return C42;
}
@Field(offset=815,length = 4,align = Align.RIGHT,paddingChar = '0')
public String getC43(){
return C43;
}
@Field(offset=820,length = 10,align = Align.LEFT,paddingChar = ' ')
public String getC44(){
return C44;
}
@Field(offset=831,length = 10,align = Align.LEFT,paddingChar = ' ')
public String getC45(){
return C45;
}
@Field(offset=842,length = 13,align = Align.RIGHT,paddingChar = '0')
public String getC46(){
return C46;
}
@Field(offset=856,length = 8,align = Align.LEFT,paddingChar = ' ')
public String getC47(){
return C47;
}
@Field(offset=865,length = 10,align = Align.LEFT,paddingChar = ' ')
public String getC48(){
return C48;
}
@Field(offset=876,length = 1,align = Align.RIGHT,paddingChar = ' ')
public String getC49(){
return C49;
}
}

View File

@ -0,0 +1,9 @@
package utils;
public class Utils {
public static void writeCsv(String strin) {
}
}

62
src/test/java/work1.java Normal file
View File

@ -0,0 +1,62 @@
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
import com.pi.txtsian.ents.AnagfctoFile;
import com.pi.txtsian.ents.AnagfctoRow;
import com.pi.txtsian.ents.OperregiFile;
import com.pi.txtsian.ents.OperregiRow;
public class work1 {
public static void main(String[] args) {
test1();
}
public static void test1() {
String test = "5900.000";
// List<OperregiRow> l1 = new ArrayList<OperregiRow>();
// List<AnagfctoRow> l2 = new ArrayList<AnagfctoRow>();
//
// OperregiRow r = new OperregiRow();
// AnagfctoRow r2 = new AnagfctoRow();
//
// r.setC01("02339040541");
// r.setC02("26149");
// r.setC03("1250");
// r.setC49("I");
//
// r2.setC01("02339040541");
//
// l2.add(r2);
// l2.add(r2);
// l2.add(r2);
// l2.add(r2);
//
// l1.add(r);
// l1.add(r);
// l1.add(r);
// l1.add(r);
// l1.add(r);
//
// OperregiFile f = new OperregiFile();
// AnagfctoFile f2 = new AnagfctoFile();
//
// f.setRighe(l1);
//
// f2.setRighe(l2);
//
// System.out.print(new String(f.getByteArray(), StandardCharsets.UTF_8));
//
// System.out.print(new String(f2.getByteArray(), StandardCharsets.UTF_8));
}
}