Я использую следующий код для вывода аннотаций в csv:
new File(scriptParams.outputFile).withWriterAppend{ out ->
([Default:(doc.getAnnotations("MS").get("EDSS"))]).each{setName, set ->
set.each{ anno ->
anno.getFeatures().each{
def f = anno.getFeatures()
out.writeLine(/"${doc.getName()}",${anno.getId()},"${anno.getType()}",${anno.start()},${anno.end()},"${f.get('value')}","${f.get('valueLower')}","${f.get('valueUpper')}"/)
}
}
}
}
который отлично работает, однако я получаю ровно 2 строки для каждой найденной аннотации. т. е. для каждой аннотации существует 1 дубликат. Кажется, я не вижу нигде в сценарии, почему это может происходить. Любые указатели?
Что о:
new File(scriptParams.outputFile).withWriterAppend{ out ->
doc.getAnnotations("MS").get("EDSS").each{
anno ->
def f = anno.getFeatures()
out.writeLine(/"${doc.getName()}",${anno.getId()},"${anno.getType()}",${anno.start()},${anno.end()},"${f.get('value')}","${f.get('valueLower')}","${f.get('valueUpper')}"/)
}
}
Основная проблема заключается в anno.getFeatures().each{
, который повторяет все функции, которые есть в аннотации, и для каждой функции печатает строку на выходе. Вам нужно напечатать строку только для каждой аннотации, а не для каждого объекта аннотации.
Спасибо! Не могли бы вы помочь мне понять, где я ошибался?