Я пытаюсь заменить некоторые 'в результате в моем списке. Но это не заменит эти знаки.
linesAsList = lines.toString().split('\t|\r')
linesAsList.toString().replaceAll(("'"),("")) as List
Это на самом деле результат:
[03.10.2011, '993413376204340783', 13,087, 0400102134, 0060000390]
Я искал это: [03.10.2011, 993413376204340783, 13,087, 0400102134, 0060000390]
И следующий шаг: когда программа обнаружила более одного результата, она должна быть в мультилисте?
Как это:
[[03.10.2011, '993413376204340783', 13,087, 0400102134, 0060000390]
[03.10.2011, '993413376204340783', 13,087, 0400102134, 0060000390]]
Это действительно возможно? И как я могу это сделать. После них я создаю цикл для создания XML.
Если Вам это нужно, это весь код:
import groovy.util.CharsetToolkit;
import java.lang.Object
//Generate pathname
//Pfadname generiert für einfacheres ändern des Speicherortes
def pathname = "C:/mySupport-eclipse/trackandtrace.txt"
//Define Error Status
//Error Status definieren für Weiterverabeitung in mySupport
int errorCode = 0
def errorMessage = ""
def linesAsList = []
def bsknr = "0060000390"
//Define new Fiel
//Neue Datei definieren
def file = new File(pathname)
if(!file.exists())
{
errorCode = 1
errorMessage = "File not found"
out_xml = xmlGenerieren()
}
else
{
//Read Roews and look for BSK Number, split after tab
//Zeilen einlesen und nach der BSK Nummer suchen, nach dem Tabulator trennen
def lines = file.filterLine {
line -> line ==~ /.*\t${bsknr}\t.*/
}
//Split the result after tab and enter, give back as String
//Das Ergebnis aufteilen bei Tabulator und Enter und zugleich als String zurückgeben
linesAsList = lines.toString().split('\t|\r')
linesAsList.toString().replaceAll(("'"),("")) as List
//Give date, sendnr. and date
//Liefere nur Datum, Sendungsnummer und Gewicht
linesAsList = linesAsList[0,1,2,4,5,6]
xmlGenerieren(linesAsList)
//println linesAsList
}
def xmlGenerieren(List linesAsList) {
def writer = new StringWriter()
def builder = new groovy.xml.MarkupBuilder(writer)
linesAsList.pop()
println linesAsList
def listsize = linesAsList.size()
//Test if is empty
//Prüfen ob gültige Ergebnise gefunden wurden
if (listsize >= 5 || listsize %5)
{
long i = 0
long anzEintraege = listsize % 5
while (i <= anzEintraege)
{
builder.result()
{
entry(wert:i)
{
paketnr(linesAsList[1])
}
}
println writer.toString()
errorCode = 0
i++
}
}
else {
println listsize
//i = listsize / 8
//println i
}
}
Пример ввода:
Filterkriterien:Frachtfuehrer: POSTCH Auftraggeber: Testfirma Zeitraum: 01.10.2011 - 31.10.2011
ZeitraumVonBis PaketNr Gewicht Gebühr Lierf. Nr KundenNr AuftragsNr Name1 Name2 Str Plz Ort Lkz Versandart
03.10.2011 '993413376204340260' 1,000 0,00 0400102100 0052662182 John Doe Streetname 10 3018 Bern CH Priority SI
03.10.2011 '993413376204340783' 13,087 0,00 0400102134 0060000390 Swisscom Schweiz AG Johnny Doe Streetname 51 3050 Bern CH Priority SI
Есть тысячи записей