Hallo zusammen,
ich habe wieder ein Groovy-Problem und brauche fachmännische Unterstützung. Die fachmännische Unterstützung habe ich hier schonmal bekommen, daher versuche ich es auf's Neue.
Mein Problem:
Ich habe in einer Datei (dir.log) einen Dateinamen, der bspw. so aussieht: 101320942_0003750004_20110530160314423_12201105270000652_3.jpg
Da jeder Bereich in diesem Dateinamen eine Bedeutung hat, muss ich diese splitten.
Ich brauche folgende Splittung:
- Die ersten beiden Bereiche aus dem Dateinamen (101320942, 0003750004)
- Den gesamten Dateinamen als String
- Den Dateinamen ohne Extension
- Die Extension
Diese Werte sollen in einem Template weiterverarbeitet werden.
Die ersten beiden Punkte kann ich bisher umsetzen (Splittung des Names mit "_" und den Dateinamen als String).
Probleme habe ich bei der zweiten Splittung. M. E. müsste ich hier eine zweite Splittung mit "." vornehmen oder?
Mein Code sieht so aus:
Meine FM lautet:
java.lang.ArrayIndexOutOfBoundsException: 0
at doit.run(doit.groovy:20)
Wisst ihr was ich falsch mache?
Ohne die zweite "Punkt-Splittung" funktioniert das Skript super. Mit leider nicht.
Vielen Dank für Eure Unterstützung.
Björn
ich habe wieder ein Groovy-Problem und brauche fachmännische Unterstützung. Die fachmännische Unterstützung habe ich hier schonmal bekommen, daher versuche ich es auf's Neue.
Mein Problem:
Ich habe in einer Datei (dir.log) einen Dateinamen, der bspw. so aussieht: 101320942_0003750004_20110530160314423_12201105270000652_3.jpg
Da jeder Bereich in diesem Dateinamen eine Bedeutung hat, muss ich diese splitten.
Ich brauche folgende Splittung:
- Die ersten beiden Bereiche aus dem Dateinamen (101320942, 0003750004)
- Den gesamten Dateinamen als String
- Den Dateinamen ohne Extension
- Die Extension
Diese Werte sollen in einem Template weiterverarbeitet werden.
Die ersten beiden Punkte kann ich bisher umsetzen (Splittung des Names mit "_" und den Dateinamen als String).
Probleme habe ich bei der zweiten Splittung. M. E. müsste ich hier eine zweite Splittung mit "." vornehmen oder?
Mein Code sieht so aus:
Java:
import groovy.text.*
import java.io.*
//Einlesen der Datei und Erzeugung "String"
new File('D:\\Skripte\\...\\dir.log').eachLine {
string = it
}
//Splittung "_"
underlineArray = string.split("_")
//Splittung "."
dotArray = string.split(".")
//Hier wird mein Template gefüllt
def templateFile = new File(".\\mydata2.template")
def data = [
'kunde' : dotArray[0],
'nummer' : dotArray[1],
'dateiname' : string,
'datei' : dotArray[0],
'extension' : dotArray[1],
]
def engine = new SimpleTemplateEngine()
def template = engine.createTemplate(templateFile)
def writable = template.make(data)
new File('D:\\Skripte\\...\\neu.xml') << writable
Meine FM lautet:
java.lang.ArrayIndexOutOfBoundsException: 0
at doit.run(doit.groovy:20)
Wisst ihr was ich falsch mache?
Ohne die zweite "Punkt-Splittung" funktioniert das Skript super. Mit leider nicht.
Vielen Dank für Eure Unterstützung.
Björn