Integerlisten für 32Bit-Werte.

Allgemeine Beispiele zur Verwendung der Klasse list finden sie hier.

Letzte Änderung :
30.07.2025, 07:35 Uhr

Integerlisten für 32Bit-Werte. Die Listen können mit den Objekt-IDs der Listenpaletten (z.B. der Produktrecherche) oder 'manuell' gefüllt werden.

static List list::alloc(
  int classid,
  int selection_type = 0,
  int id_index = 1)

Hole die Objektliste der Palette, die die Objekte der gewünschten classid enthalten. Wird keine entsprechende Palette gefunden, wird 0 zurückgegeben. Sonst wird die Liste mit den gewünschten IDs der geladenen Objekte gefüllt. Die Ergebnisliste muss mit list::release wieder gelöscht werden.

[ab v3.3 R3136] Beim Schließen von Paletten entfernt InDesign® alle Listeneinträge der Listen der Palette. Wenn die Liste beim erneuten Öffnen wieder den alten Inhalt zeigt, dann nur deshalb, weil wir sie sofort wieder mit den alten Daten füllen. Ein recht aufwendiger Prozess.
Da wir die Daten aber schon mal haben, können wir sie auch für list::alloc auch verwenden und Ergebnisse liefern, auch wenn die Palette unsichtbar ist. ACHTUNG : Das geht natürlich nur für die Auswahltypen kAll und kEyeMarked. kSelected liefert bei unsichtbaren Paletten weiterhin eine leere Liste - eine Auswahl haben unsichtbare Listen nach wie vor nicht!

Name Typ Default Beschreibung
Return List   Erzeugte Liste oder 0
classid int - KlassenID der Palette

Die folgenden Paletten werden unterstützt:
  • kPanelProducts
  • kPanelPublications
  • kPanelPreviews
  • kPanelPlaceholder
  • kPanelPageitems (Templates)
  • kPanelPageTemplates (seit v4.1.8 R30020)
selection_type int kAll kAll = Alle Datensätze der Palette
kEyeMarked = Nur die mit dem Auge markierten Datensätze der Palette
kSelected = Nur die selektierten Einträge der Palette
id_index int 1 Welche IDs sollen geholt werden? 1 = ID, 2 = ID2, 3 = ID3
#include "internal/types.h"
#include "internal/panels.h"

Erzeuge eine Liste mit den IDs der markierten Produkte

#include "internal/panels.h"
List li = list::alloc (kPanelProducts, kEyeMarked, 1);


priint:comet InDesign® Plug-Ins, comet_pdf

static List list::alloc()

Erzeuge eine neue leere Liste. Die Liste muss mit list::release wieder gelöscht werden.

Name Typ Default Beschreibung
Return List   Erzeugte Liste oder 0

Erzeuge eine neue leere Liste

List = list::alloc ();
 	:
list::release (li);

Exportiere alle ungeraden Seiten des aktuellen Dokumentes in ein PDF.

int main()
{
    List  pnums = list::alloc ();
    int   p;
for (p = 0; p < document::pages (); p += 2) { list::append (pnums, p); }
document::pdf_export (0, "$DESKTOP/aaa.pdf", "", 2, pnums);
return 0; }


priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator

static int list::release(List li)

Lösche eine mit list::alloc erzeugte Liste wieder

Name Typ Default Beschreibung
li List - Zu löschende Liste


priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator

static int list::length(List li)

Ermittle die Anzahl der Elemente einer Liste

Name Typ Default Beschreibung
Return int   Anzahl der Einträge der Liste
li List - Liste
int len = list::length (li);


priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator

static int list::first(List li)

Hole den ersten Eintrag einer nichtleeren einer Liste

Name Typ Default Beschreibung
Return int   Erster Wert der Liste
li List - Liste mit mindestens einem Element
Der aktuelle Listenzeiger steht jetzt am Anfang der Liste. Mit next oder last können weitere Werte geholt werden.

Das folgende Beispiel kann für Listen verwendet werden, die keinen 0-Eintrag haben.

int main ()
{
    List		li	= list::alloc ();
    int		i;
for (i=1; i<6; i++) list::insert (li, 3*i); for (i=list::first (li); i; i=list::next (li)) { showmessage ("%d", i); } list::release (li); }


priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator

next
prev
last
get
get_pos

static int list::next(List li)

Hole den nächsten Eintrag einer Liste.

Name Typ Default Beschreibung
Return int   Nächster Wert der Liste
li List - Liste mit mindestens einem Element nach dem aktuellen Listenzeiger
Aktueller Listenzeiger mit first, get_pos oder get gesetzt und nicht das letzte Element der Liste
Aktueller Listenzeiger wird eine Position weiter geschoben

Das folgende Beispiel kann für Listen verwendet werden, die keinen 0-Eintrag haben.

int main ()
{
    List		li	= list::alloc ();
    int			i;
for (i=1; i<6; i++) list::insert (li, 3*i); for (i=list::first (li); i; i=list::next (li)) { showmessage ("%d", i); } list::release (li); }


priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator

first
prev
last
get
get_pos

static int list::prev(List li)

Hole den vorherigen Eintrag einer Liste.

Name Typ Default Beschreibung
Return int   Wert der Vorgängers in der Liste
li List - Liste mit mindestens einem Element nach dem aktuellen Listenzeiger
Aktueller Listenzeiger mit last, get_pos oder get gesetzt und nicht das erste Element der Liste
Aktueller Listenzeiger wird eine Position nach vorne verschoben

Das folgende Beispiel kann für Listen verwendet werden, die keinen 0-Eintrag haben.

int main ()
{
    List		li	= list::alloc ();
    int			i;
for (i=1; i<6; i++) list::insert (li, 3*i); for (i=list::last (li); i; i=list::prev (li)) { showmessage ("%d", i); } list::release (li); }


priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator

first
next
last
get
get_pos

static int list::last(List li)

Hole den letzten Eintrag einer nichtleeren einer Liste

Name Typ Default Beschreibung
Return int   Erster Wert der Liste
li List - Liste mit mindestens einem Element
Der aktuelle Listenzeiger steht jetzt am Ende der Liste. Mit prev oder first können weitere Werte geholt werden.

Das folgende Beispiel kann für Listen verwendet werden, die keinen 0-Eintrag haben.

int main ()
{
    List		li	= list::alloc ();
    int			i;
for (i=1; i<6; i++) list::insert (li, 3*i); for (i=list::last (li); i; i=list::prev (li)) { showmessage ("%d", i); } list::release (li); }


priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator

first
next
prev
get
get_pos

static int list::get_pos(
  List li,
  int val,
  int setPos = 0)

Suche die Position eines Wertes in der Liste. Wird der Wert nicht gefunden, gibt die Funktion -1 zurück. Listenposition sind 0-basiert, das erste Element hat also die Position 0, das letzte die Position length-1.

Name Typ Default Beschreibung
Return int   >= 0 : Erstes Auftreten des Wertes in der Liste
-1 : Wert nicht gefunden
li List - Liste, in der dxer Wert gesucht werden soll
val int - Dieser Wert wird gesucht
setPos int 0 0 : Listenposition unverändert lassen
1 : Aktuelle Listenposition auf Fundstelle setzen
Wurde der Wert in der Liste gefunden und ist setPos > 0, steht die aktuelle Listenposition auf der Fundstelle.
pos	= list::get_pos (li, val [, setPos]);


priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator

get

static int list::get(
  List li,
  int pos,
  int doSelect= 0)

Hole das i-te Element der Liste. Listenposition sind 0-basiert, das erste Element hat also die Position 0, das letzte die Position length-1.

Name Typ Default Beschreibung
Return int   Wert der Liste an der Stelle i oder -1
li List - Liste, aus der das Element geholt werden soll
pos int - 0-basierte Listenposition
setPos int 0 0 : Listenposition unverändert lassen
1 : Aktuelle Listenposition auf pos setzen
Ist setPos > 0, steht die aktuelle Listenposition auf i.
k	= list::get (li, pos [, setPos]);


priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator

get_pos

static int list::append(List li, int val)

Element an die Liste anfügen

Name Typ Default Beschreibung
Return int   1 Aktion erfolgreich, 0 sonst
li List - Liste, an die angefügt werden soll
val int - Anzufügendener Wert
list::append (li, k);


priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator

insert
remove
remove_pos
clear

static int list::insert(
  List li,
  int val,
  int pos = -1)

Element in die Liste einfügen. Listenposition sind 0-basiert, das erste Element hat also die Position 0, das letzte die Position length-1.

Name Typ Default Beschreibung
Return int   1 Aktion erfolgreich, 0 sonst
li List - Liste, an die angefügt werden soll
val int - Anzufügendener Wert
pos int - Einfügestelle. 0 = Listenanfang, Werte < 0 oder >= length = Anfügen
list::insert (li, 3, 0);


priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator

append
remove
remove_pos
clear

static int list::remove(
  List li,
  int val,
  int rmAll = 1)

Alle Auftreten eines Wertes werden aus der Liste entfernt. Ab R1396 (26.6.2009) können Sie mit einem zusätzlichen Parameter fest6legen, dass nur das erste Auftreten des Wertes gelöscht wird.

Name Typ Default Beschreibung
Return int   1 Aktion erfolgreich, 0 sonst
li List - Liste, an die angefügt werden soll
val int - Wert, der aus der Liste entfernt werden soll
rmAll int - Lösche alle oder nur das erste Vorkommen des Wertes
1 : alle löschen
0 : nur das erste löschen (wenn es eins gibt)

Im Beispiel sehen sie die Wirkungsweise von remove und remove_pos

int main ()
{
    int			i;
    List		li = list::alloc ();
for (i=1; i< 6; i++) list::append (li, i); list::insert (li, 2);
for (i=0; i< list::length (li); i++) { // 123452 showmessage ("1:%d", i+1, list::get (li, i)); }
list::remove_pos (li, 3); for (i=0; i< list::length (li); i++) { // 12352 showmessage ("2:%d", i+1, list::get (li, i)); }
list::remove (li, 2); for (i=0; i< list::length (li); i++) { // 135 showmessage ("3:%d", i+1, list::get (li, i)); }
list::release (li); }

Parameter rmAll seit R1396, 25.6.2009

priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator

append
insert
remove_pos
clear

static int list::remove_pos(List li, int pos)

Entferne eine Position aus der Liste. Listenposition sind 0-basiert, das erste ElementElement hat also die Position 0, das letzte die Position length-1.

Name Typ Default Beschreibung
Return int   1 Aktion erfolgreich, 0 sonst
li List - Liste
pos int - 0-basierte Löschposition

Im Beispiel sehen sie die Wirkungsweise von remove und remove_pos

int main ()
{
    int			i;
    List		li = list::alloc ();
for (i=1; i< 6; i++) list::append (li, i); list::insert (li, 2);
for (i=0; i< list::length (li); i++) { // 123452 showmessage ("1:%d", i+1, list::get (li, i)); }
list::remove_pos (li, 3); for (i=0; i< list::length (li); i++) { // 12352 showmessage ("2:%d", i+1, list::get (li, i)); }
list::remove (li, 2); for (i=0; i< list::length (li); i++) { // 135 showmessage ("3:%d", i+1, list::get (li, i)); }
list::release (li); }


priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator

append
insert
remove
clear

static int list::clear(List li)

Entferne alle Elemente der Liste

Name Typ Default Beschreibung
Return int   1 Aktion erfolgreich, 0 sonst
li List - Liste
list::clear (li);


priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator

append
insert
remove
remove_pos

static int list::reload(long classid, long reloadAll = 0)

Neuladen der Datensätze einer Palettenliste. Wenn Sie die komplette Palettenliste neu laden wollen, rufen Sie die Funktion mit dem Parameter reloadAll = 1 auf, sonst werden nur die Einträge selbst neu geladen. Wenn sie nur die Linkbuttons der Liste(n) aktualisieren wollen, können sie den Befehl placeholder::update_link_states verwenden.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
classid int - Von WERK II vergebene Palettennummer
0 - alle geöffneten Paletten aktualisieren
reloadAll int 0 Komplette Liste neu laden?

0 : Nein, nur die Listeneinträge neu laden
1 : Ja, die Liste komplett neu laden

Neuladen der Einträge Palette 'Produktrecherche'

err_code = list::reload (3);

Parameter reloadAll neu seit Version 2.1 R 684, 25 April 2008

priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator

placeholder::update_link_states
placeholder::reload_panel
comet.panel.reloadList

static int list::classid(List li)

ClassID der Listeneinträge. Mit dieser Klasse wurde die Liste initalisiert (list::alloc).

Name Typ Default Beschreibung
Return int   0 oder ClassID.
li List - Liste, deren classid ermittelt werden soll


priint:comet InDesign® Plug-Ins, comet_pdf

static int list::index(List li)

Welche IDs beinhaltet die Liste. Mit diesem Wert wurde die Liste initialisiert.

Name Typ Default Beschreibung
Return int   0 : Undefiniert
1 : ID
2 : ID2
3 : ID3
li List - Liste, deren Index-Typ ermittelt werden soll


priint:comet InDesign® Plug-Ins, comet_pdf

static int list::complete(List li)

Enthält die Liste alle IDs der Palette oder nur die ausgewählten Einträge?

Name Typ Default Beschreibung
Return int   0 : Nur ausgewählte Einträge
1 : alle Einträge der Palette
li List - Liste


priint:comet InDesign® Plug-Ins, comet_pdf

static char* list::gettext(
  List li,
  long index,
  char* attribute,
  char* result)

Hole den Wert eines Elementes einer Liste. Die erfragbaren Attribute sind von der ClassID der Liste abhängig.

Wurde die Liste als Palettenliste angelegt (alloc mit Angabe einer ClassID) werden zur Berechnung der aktuellen Werte der Liste nur deren ClassID, Auswahltyp und Länge verwendet. Die Werte der Elemente werden direkt aus der Palettenliste geholt, Inhalte der Listeneinträge bleiben unberücksichtigt.

Wurde die Liste nicht mit einer KlassenID oder mit einer unbekannten KlassenID erzeugt, wird der Elementinhalt direkt aus der Liste ermittelt. Die Attribut-Angabe bleibt dann unberücksichtigt.

Palette ClassID Name Typ
Produktrecherche kPanelProducts ID int
ID2 int
ID3 int
StringID, STRINGID und ab v3.1 R1800 jeweils mit 1, 2, 3 am Ende für Multi-StringIDs char*
Num char*
Name char*
Depth int
ClassID int
ImageID int
StatementID int
HasPlacement int
DocID int
Masterpage char*
Grid char*
GridElement char*
GridID int
GridElementID int
PageitemID, Template des Produktes int
Previews kPanelPreviews ID int
ID2 int
ID3 int
StringID, STRINGID und ab v3.1 R1800 jeweils mit 1, 2, 3 am Ende für Multi-StringIDs char*
Key int
Key2 int
Key3 int
MyClassID int
ToDelete int
Width int
Height int
Resolution int
BitDepth int
Path char*
FileName char*
Format char*
Column1 char*
Column2 char*
Column3 char*
Text char*
ImageAlign int
ImageSize float
ClipIndex int
ClipFlags int
ClipToFrame int
ClipTolerance float
ClipMinPathsize float
ClipInset float
AlphaIndex int
AlphaChannel string
[Seit v5.0 R37000] AlphaTreshold int
Templates kPanelPageitems ID int
ID2 int
ID3 int
ToDelete int
Name char*
Type char*
Mandant char*
State char*
Description char*
Left float
Top float
Right float
Bottom float
Seitentemplates kPanelPageTemplates ID int
Name char*
Activated int
PageType int
Oposite int
Successor int
Masterpages int
Docu char*
BackLayers char*
PageScript int
Publikationen kPanelPublications siehe Publikations-Tags, an dieser Stelle macht natürlich nur die Auswertung der palettenspezifischen Tags Sinn. Die parent.-Abfragen sind erlaubt.

Name Typ Default Beschreibung
Return String oder char* (Abhängig von Parameter result)   Attributwert oder leer. Das Ergebnis ist ein Zeiger auf result. Wenn result vom Typ char* ist, muss der Zeiger über genügend zugewiesenen Speicher verfügen (char[1000], alloc (1000)).
li List - Liste

Die folgenden Paletten werden unterstützt:
  • kPanelProducts
  • kPanelPublications
  • kPanelPreviews
  • kPanelPageitems (Templates)
  • kPanelPageTemplates (seit v4.1.8 R30020)
index int - 0-basierter Listenindex. Der Index ist davon abhängig, wie die Liste allokiert wurde (kAll, kEyeMarked, kSelected), siehe hier.
attribute String oder char* - Attributname

Integer- und Float-Werte werden automatisch in Strings umgerechnet. Wollen Sie Integer- oder Float-Werte direkt abholen, können auch die Funktionen getint bzw. getfloat verwendet werden.
result String oder char* - Reservierter Speicher für das Ergebnis.
#include "internal/panels.h"

Das Beispiel zeigt für jeden "geaugten" Eintrag der Produktrecherche dessen StringID.

int main ()
{
    char 	s1[512];
    List 	prod 	= list::alloc (3,1,1);
    int		i	= 0;
for (i=0; i<list::length (prod); i++) { list::gettext (prod, i, "StringID", s1);
showmessage (s1); }
return 0; }


priint:comet InDesign® Plug-Ins, comet_pdf

static int list::getint(
  List li,
  long index,
  char* attribute)

Hole den Wert eines Elementes der Liste als Ganzzahl. Die erfragbaren Attribute sind von der ClassID der Liste abhängig. Enthält das Attribut einen Text- oder Floatwert ist das Ergebnis des Aufrufes undefiniert.

Wurde die Liste als Palettenliste angelegt (alloc mit Angabe einer ClassID) werden zur Berechnung der aktuellen Werte der Liste nur deren ClassID, Auswahltyp und Länge verwendet. Die Werte der Elemente werden direkt aus der Palettenliste geholt, Inhalte der Listeneinträge bleiben unberücksichtigt.

Wurde die Liste nicht mit einer KlassenID oder mit einer unbekannten KlassenID erzeugt, wird der Elementinhalt direkt aus der Liste ermittelt. Die Attribut-Angabe bleibt dann unberücksichtigt.

Name Typ Default Beschreibung
Return int   Attributwert
li List - Liste

Die folgenden Paletten werden unterstützt:
  • kPanelProducts
  • kPanelPublications
  • kPanelPreviews
  • kPanelPageitems (Templates)
  • kPanelPageTemplates (seit v4.1.8 R30020)
index int - 0-basierter Listenindex. Der Index ist davon abhängig, wie die Liste allokiert wurde (kAll, kEyeMarked, kSelected), siehe hier.
attribute String oder char* - Attributname. Es können nur Werte geholt werden, die in der obigen Liste als int gekennzeichnet sind. Andere Attributwerte können Fehlern führen.


priint:comet InDesign® Plug-Ins, comet_pdf

static float list::getfloat(
  List li,
  long index,
  char* attribute)

Hole den Wert eines Elementes der Liste als Kommazahl. Die erfragbaren Attribute sind von der classid der Liste abhängig. Enthält das Attribut einen Text oder Int-wert ist das Ergebnis des Aufrufes undefiniert.

Wurde die Liste als Palettenliste angelegt (alloc mit Angabe einer ClassID) werden zur Berechnung der aktuellen Werte der Liste nur deren ClassID, Auswahltyp und Länge verwendet. Die Werte der Elemente werden direkt aus der Palettenliste geholt, Inhalte der Listeneinträge bleiben unberücksichtigt.

Wurde die Liste nicht mit einer KlassenID oder mit einer unbekannten KlassenID erzeugt, wird der Elementinhalt direkt aus der Liste ermittelt. Die Attribut-Angabe bleibt dann unberücksichtigt.

Name Typ Default Beschreibung
Return float   Attributwert
li List - Liste

Die folgenden Paletten werden unterstützt:
  • kPanelProducts
  • kPanelPublications
  • kPanelPreviews
  • kPanelPageitems (Templates)
  • kPanelPageTemplates (seit v4.1.8 R30020)
index int - 0-basierter Listenindex. Der Index ist davon abhängig, wie die Liste allokiert wurde (kAll, kEyeMarked, kSelected), siehe hier.
attribute String oder char* - Attributname. Es können nur Werte geholt werden, die in der obigen Liste als float gekennzeichnet sind. Andere Attributwerte können Fehlern führen.
#include "internal/types.h"
#include "internal/panels.h"


priint:comet InDesign® Plug-Ins, comet_pdf

static int list::open_tree(int panel, int depth)

Öffne alle Einträge einer Palette.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
panel int - Welche Liste soll verwendet werden?

kPanelProducts (=3) : Produktrecherche

Zur Zeit werden keine weiteren Paletten unterstützt.

Für die PalettenIDs verwenden Sie den Incude #include "internal/panels.h".
depth int - Tiefe, bis zu der geöffnet werden soll.

0 : Alle Einträge schließen
-1 : Einträge eine Ebene weiter öffnen
-2 : Einträge bis zu tiefster gezeigter Ebene öffnen
-3 : Alle Einträge öffnen
-4 : Alle Einträge schließen
sonst : Alle Einträge bis max. zu dieser Ebene öffnen. Tiefere Ebenen werden nicht geschlossen.
#include "internal/panels.h"

Version 3.1 R1977, 25.06.2010

priint:comet InDesign® Plug-Ins, comet_pdf

static int list::get_autoload(int classID = 3)

Ist das "autoload"-Button der Palette aktiviert oder nicht? Die Funktion ist nur für die Produktrecherche (classID 3) implementiert und nur für InDesign® Desktop. In allen anderen Fällen liefert die Funktion den Wert 1.

Name Typ Default Beschreibung
Return int   Ist das "autoload"-Button der Palette aktiviert (rot) oder nicht? Unter InDesign® Server und für alle Palette außer der Produktrecherche liefert die Funktion den Wert 1.

1 : Ja oder InDesign® Server oder nicht die Produktrecherche
0 : Nein
classID int 3 Welche Palette soll befragt werden? Zur Zeit wird nur die Palette "Produktrecherche" (classID 3) unterstützt.
#include "internal/panels.h"

v3.3 R3601, 5. Apr. 2013

priint:comet InDesign® Plug-Ins, comet_pdf

static int list::set_autoload(int classID = 3, int newState = 1)

Ändern des "autoload"-Buttons der Palette. Die Funktion ist nur für die Produktrecherche (classID 3) implementiert und nur für InDesign® Desktop. In allen amderen Fällen hat der Aufruf keine Wirkung.

Name Typ Default Beschreibung
Return int   Alter Status des Buttons.
classID int 3 Welche Palette soll geändert werden? Zur Zeit wird nur die Palette "Produktrecherche" (classID 3) unterstützt.
newState int 1 Neuer Status des Buttons

0 : inaktiv (grau)
1 : aktiv (grün)

v3.3 R3601, 5. Apr. 2013

priint:comet InDesign® Plug-Ins, comet_pdf

static char* list::to_xml(List list, char* rootElementName = "integers")

Generiere die XML Struktur eines List-Objekts.

Wenn Sie über die Verwendung dieser Funktion nachdenken, sind Sie möglicherweise an näheren Informationen zur Interaktion von cscript mit auf dem PubServer als PlugIn bereitgestellten Java-Methoden interessiert. Mehr Informationen dazu finden Sie hier.

Name Typ Default Beschreibung
Return char *   xml string oder 0 bei Fehlern. Der Ergebnisstring ist nur bis zum nächsten Aufruf einer to_xml-Funktion gültig und darf nicht verändert oder freigegeben werden.
list List - Object
rootElementName String oder char* integers Name des Root-Elements

4.0.5 R9650
comet.publication.toXMLIntList

static List list::from_xml(char* xml)

Generiere eine List-Objekt aus einer XML Struktur.

Wenn Sie über die Verwendung dieser Funktion nachdenken, sind Sie möglicherweise an näheren Informationen zur Interaktion von cscript mit auf dem PubServer als PlugIn bereitgestellten Java-Methoden interessiert. Mehr Informationen dazu finden Sie hier.

Name Typ Default Beschreibung
Return List   Objekt vom Typ List. Dieses Objekt muss mit productlist::release wieder freigegeben werden.
xml String oder char* - xml string

4.0.5 R9650
comet.publication.fromXMLIntList

static int list::add_all(
  List target,
  List src,
  int deleteFromSource)

Füge alle Elemente der Liste src in die Liste target ein.
Bei deleteFromSource != 0 werden die Elemente aus der Quellliste entfernt (aber nicht freigegeben)

Name Typ Default Beschreibung
Return int   0 oder Fehlercode.
target List - Zielliste  
src List - Quellliste  
deleteFromSource 0 Elemente aus der Quelliste entfernen  

4.0.5 R9700

static int list::sort(List li, int direction = 0)

Sortieren einer Liste.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
li List - Liste, deren Einträge sortiert werden sollen
direction int 0 Sortierreihenfolge

0 : aufsteigend
1 : absteigend
int main ()
{
    List 	li = list::alloc ();
    int 	i;
list::insert (li, 12); list::insert (li, 20); list::insert (li, 9); list::insert (li, 3); list::insert (li, 42);
wlog ("", "sort ascent\n"); list::sort (li); for (i = 0; i < list::length (li); i++) wlog ("", "%d\t%d\n", i+1, list::get (li, i)); wlog ("", "\n\n");
wlog ("", "sort descent\n"); list::sort (li, 1); for (i = 0; i < list::length (li); i++) wlog ("", "%d\t%d\n", i+1, list::get (li, i)); wlog ("", "\n\n");
return 0; }

v4.0.5 R9955, 3. Feb 2016

priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator

Das folgende Beispiel kann für Listen verwendet werden, die keinen 0-Eintrag haben.

int main ()
{
    List	li	= list::alloc ();
    int		i;
for (i=1; i<6; i++) list::insert (li, 3*i);
for (i=list::first (li); i; i=list::next (li)) { showmessage ("%d", i); } list::release (li); }

Auch das folgende Beispiel kann für Listen verwendet werden, die keinen 0-Eintrag haben. Da die Listen hier als ID-Listen der Palette Produktrecherche erzeugt werden, ist das sichergestellt : Die Listenplugins enthalten nur Einträge, deren erste ID > 0 ist.

int main ()
{
    List	li, li2, li3;
    int		id, id2, id3;
li = list::alloc (3, 0, 1);// Alle IDs li2 = list::alloc (3, 0, 2);// Alle ID2s li3 = list::alloc (3, 0, 3);// Alle ID3s
if (!li || !li2 || !li3) { showmessage ("'Produktrecherche' nicht geöffnet."); return 1; }
id = list::first (li); id2 = list::first (li2); id3 = list::first (li3); while (id) { showmessage ("ID=(%d, %d, %d", id, id2, id3);
id = list::next (li); id2 = list::next (li2); id3 = list::next (li3); }
list::release (li); list::release (li2); list::release (li3); }

Das dritte Beispiel funktioniert für beliebige Listen

int main ()
{
    List	li	= list::alloc ();
    int		i;
    int		val;
for (i = 1; i < 6; i++) list::insert (li, 3*i); for (i = 0; i < list::length (li); i++) { val = list::get (li, i) showmessage ("%d", val); } list::release (li); }

Im folgenden Beispiel sehen sie die Wirkungsweise von remove und remove_pos

int main ()
{
    int		i;
    List	li = list::alloc ();
for (i=1; i< 6; i++) list::append (li, i); list::insert (li, 2);
for (i=0; i< list::length (li); i++) { // 123452 showmessage ("1:%d", i+1, list::get (li, i)); }
list::remove_pos (li, 3); for (i=0; i< list::length (li); i++) { // 12352 showmessage ("2:%d", i+1, list::get (li, i)); }
list::remove (li, 2); for (i=0; i< list::length (li); i++) { // 135 showmessage ("3:%d", i+1, list::get (li, i)); }
list::release (li); }

Seit
Plugin Version 1.0.12
Letzte Änderung
30.07.2025, 07:35 Uhr
Autor
Paul Seidel

Alphabetic index HTML hierarchy of classes or Java