Skip to main content
Participant
June 25, 2024
Answered

Scripterstellung zur Sortierung Text - Kurse nach Kursnummer sortieren

  • June 25, 2024
  • 1 reply
  • 353 views

Hallo zusammen,
ich benötige Hilfe bei der Erstellung eines Scriptes welches das Kursprogramm zweier Halbjahre sortiert nach Kursnummer (dies ist auch durch ein Absatzformat definiert) untereinander setzt. Schwierigkeit dabei ist, dass die Kursnummer des ersten Halbjahres  mit 242_XXXXX und die des zweiten Halbjahres mit 251_XXXXX beginnt.  Hier einmal ein Textbeispiel:

Motorsägenlehrgang für Privatpersonen - KWF Modul A

Im Seminar wird das sichere Fällen von Bäumen trainiert und das Schneiden und Aufarbeiten des Holzes nach der Fällung geübt. Weitere Themen sind u.a. die Betankung und kleinere Reparaturen der Motorsäge, deren Wartung, das Schärfen der Kette sowie Informationen über Unfallverhütungsvorschriften und geeignete Schutz- und Arbeitsmittel. Die Teilnahme befähigt nicht zum beruflichen Führen einer Motorsäge. Mindestalter 18 Jahre.

242_14980 • KLEINGRUPPE • (Seminar)Seminarleiter

Fr, 25.10.24: 18.00 - 22:00 Uhr + Sa, 26.10.24: 8.00-16.00 Uhr, 2 Termine, 15,3 Ustd, max 6 Teilnehmende, keine Ermäßigung

Bitte mitbringen: Private Motorsäge

und hier noch ein Kurs aus dem zweiten Halbjahr:

Motorsägenlehrgang für Privatpersonen - KWF Modul A

Im Seminar wird das sichere Fällen von Bäumen trainiert und das Schneiden und Aufarbeiten des Holzes nach der Fällung geübt. Weitere Themen sind u.a. die Betankung und kleinere Reparaturen der Motorsäge, deren Wartung, das Schärfen der Kette sowie Informationen über Unfallverhütungsvorschriften und geeignete Schutz- und Arbeitsmittel. Achtung: Die Teilnahme befähigt nicht zum beruflichen Führen einer Motorsäge. Mindestalter 18 Jahre.

251_14980 • KLEINGRUPPE • (Seminar) Kursleiter

Fr, 28.02.25: 18.00 - 22:00 Uhr + Sa, 01.03.25: 8.00-16.00 Uhr, 2 Termine, 12 Ustd, max 6 Teilnehmende, keine Ermäßigung

 

Die Kurse sollten dann optimalerweise sortiert untereinander stehen.

Ich hatte schon mit einem Script angefangen, aber das funktioniert hinten und vorne nicht:

// SortParagraphsByCourseNumber.jsx
#target indesign

function sortParagraphsByCourseNumber() {
var doc = app.activeDocument;
var paragraphs = doc.stories.everyItem().paragraphs.everyItem().getElements();
var kursParagraphs = [];

// Filter paragraphs with paragraph style "Kursnummer"
for (var i = 0; i < paragraphs.length; i++) {
if (paragraphs[i].appliedParagraphStyle.name === "Kursnummer") {
kursParagraphs.push(paragraphs[i]);
}
}

// Sort kursParagraphs by the course number (after the first four characters)
kursParagraphs.sort(function(a, b) {
var aText = a.contents;
var bText = b.contents;
 
// Debug output to check the contents of aText and bText
$.writeln("aText: " + aText);
$.writeln("bText: " + bText);
 
// Ensure the text slice and trim methods are used correctly
var aCourseNumber = aText.slice(4).trim();
var bCourseNumber = bText.slice(4).trim();

return aCourseNumber.localeCompare(bCourseNumber);
});

// Reposition sorted paragraphs in the story
for (var j = 0; j < kursParagraphs.length; j++) {
var para = kursParagraphs[j];
var story = para.parentStory;

// Move the paragraph to the new position
para.move(LocationOptions.AT_BEGINNING, story.insertionPoints[j]);
}
}

// Run the function
sortParagraphsByCourseNumber();
 
Benötige hier mal eure Schwarmintelligenz. DANKE
This topic has been closed for replies.
Correct answer Robert at ID-Tasker

Then your code will move - at the beginning of the Story - only those paragraphs - not whole blocks.

 

First, you need to get start + end of each block - then locate your "key" - then sort those "keys" - then move whole blocks - "parents" of each "key".

 

1 reply

Robert at ID-Tasker
Legend
June 25, 2024

Can you post a screenshot from InDesign - with hidden characters visible. 

 

And the paragraph with the number is in the middle of the block to be moved, right?

 

Participant
June 26, 2024

yes the number is located after the description of the course

Robert at ID-Tasker
Robert at ID-TaskerCorrect answer
Legend
June 26, 2024

Then your code will move - at the beginning of the Story - only those paragraphs - not whole blocks.

 

First, you need to get start + end of each block - then locate your "key" - then sort those "keys" - then move whole blocks - "parents" of each "key".