how can i parse raw sqlci query result executed with TelnetClient in java?
I was trying something like this:
String responeExample =
"CLI_IDC CLI_VRT CLI_IND_PER_EMP CLI_TIP CLI_CIC CLI_COD_EST\n" +
"------------- ------- --------------- ------- ------------ -----------\n" +
"CLI_APE_PTN CLI_APE_MTN CLI_NOM\n" +
"------------------------- ------------------------- -------------------------\n" +
"CLI_IND_SEX CLI_COD_ACV CLI_COD_EJE CLI_COD_ECV CLI_FEC_NAC\n" +
"----------- ----------- ------------ ----------- -----------\n" +
"CLI_NOM_FTS CLI_COD_OFI CLI_COD_PLN\n" +
"---------------------------------------- ----------- -----------\n" +
"CLI_COD_TIP_BCA CLI_COD_SOC_ECO CLI_IND_CNV CLI_RTA\n" +
"--------------- --------------- ----------- ---------------------\n" +
"CLI_COD_STO CLI_PDO_STO\n" +
"----------- -----------\n" +
"\n" +
"005752983 0 P CL 98707514 VIG\n" +
"NO TOCAR TDM CELULA\n" +
"M 95001 RFERNAS SOL 1990-01-01\n" +
" 090\n" +
"PP N .0000\n" +
"\n";
String[] headersAndValues = responeExample.split("\n\n");
String[] headers = headersAndValues[0]
.replaceAll("-", "")
.replace("\n", "")
.replaceAll(" +", " ")
.trim()
.split(" ");
String values = headersAndValues[1];
System.out.println("HEADERS: ["+headers.length+"]" + Arrays.toString(headers));
System.out.println("VALUES: " + values);
with this I was able to parse the response headers in String array, but the response values contain spaces and some values are just a blank space like the last line of values, how can I parse this?
I solved it using splits, trims and replaces, the code tested it with several queries to different tables with different values and all of them parsed correctly.
the Mapper Class:
Obviously it is not the cleanest solution, but it works, it has several things to improve but as an initial version it is fine.
Example of use:
Output: