Integerlisten für 64Bit-Zahlen.

Allgemeine Beispiele zur Verwendung der Klasse list64 finden sie hier.

Letzte Änderung :
30.07.2025, 07:35 Uhr

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

static List64 list64::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 list64::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 list64::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 List64   Erzeugte Liste der 0
classid int - KlassenID der Palette
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/panels.h"

Erzeuge eine Liste mit den IDs der markierten Produkte

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

v4.0.5 R9955, 3. Feb 2016

priint:comet InDesign® Plug-Ins, comet_pdf

static List64 list64::alloc()

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

Name Typ Default Beschreibung
Return List64   Erzeugte Liste oder 0

Erzeuge eine neue leere Liste

List64 = list64::alloc ();
 	:
list64::release (li);

v4.0.5 R9955, 3. Feb 2016

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

static int list64::release(List64 li)

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

Name Typ Default Beschreibung
Return int   -
li List64 - Zu löschende Liste

v4.0.5 R9955, 3. Feb 2016

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

static int list64::length(List64 li)

Ermittle die Anzahl der Elemente einer Liste

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

v4.0.5 R9955, 3. Feb 2016

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

static int list64::first(List64 li)

Hole den ersten Eintrag einer nichtleeren einer Liste

Name Typ Default Beschreibung
Return int   Erster Wert der Liste
li List64 - Liste mit mindestens einem ElementElement
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 ()
{
    List64		li	= list64::alloc ();
    int			i;
for (i=1; i<6; i++) list64::insert (li, 3*i); for (i=list64::first (li); i; i=list64::next (li)) { showmessage ("%d", i); } list64::release (li); }

v4.0.5 R9955, 3. Feb 2016

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

next
prev
last
get
get_pos

static int list64::next(List64 li)

Hole den nächsten Eintrag einer Liste.

Name Typ Default Beschreibung
Return int   Nächster Wert der Liste
li List64 - 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 ()
{
    List64		li	= list64::alloc ();
    int			i;
for (i=1; i<6; i++) list64::insert (li, 3*i); for (i=list64::first (li); i; i=list64::next (li)) { showmessage ("%d", i); } list64::release (li); }

v4.0.5 R9955, 3. Feb 2016

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

first
prev
last
get
get_pos

static int list64::prev(List64 li)

Hole den vorherigen Eintrag einer Liste.

Name Typ Default Beschreibung
Return int   Wert der Vorgängers in der Liste
li List64 - 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 ()
{
    List64		li	= list64::alloc ();
    int			i;
for (i=1; i<6; i++) list64::insert (li, 3*i); for (i=list64::last (li); i; i=list64::prev (li)) { showmessage ("%d", i); } list64::release (li); }

v4.0.5 R9955, 3. Feb 2016

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

first
next
last
get
get_pos

static int list64::last(List64 li)

Hole den letzten Eintrag einer nichtleeren einer Liste

Name Typ Default Beschreibung
Return int   Erster Wert der Liste
li List64 - 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 ()
{
    List64		li	= list64::alloc ();
    int			i;
for (i=1; i<6; i++) list64::insert (li, 3*i); for (i=list64::last (li); i; i=list64::prev (li)) { showmessage ("%d", i); } list64::release (li); }

v4.0.5 R9955, 3. Feb 2016

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

first
next
prev
get
get_pos

static int list64::get_pos(
  List64 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 List64 - 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	= list64::get_pos (li, val [, setPos]);

v4.0.5 R9955, 3. Feb 2016

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

get

static int list64::get(
  List64 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 List64 - 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	= list64::get (li, pos [, setPos]);

v4.0.5 R9955, 3. Feb 2016

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

get_pos

static int list64::append(List64 li, int val)

Element an die Liste anfügen

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

v4.0.5 R9955, 3. Feb 2016

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

insert
remove
remove_pos
clear

static int list64::insert(
  List64 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 List64 - Liste, an die angefügt werden soll
val int - Anzufügendener Wert
pos int - Einfügestelle. 0 = Listenanfang, Werte < 0 oder >= length = Anfügen
list64::insert (li, 3, 0);

v4.0.5 R9955, 3. Feb 2016

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

append
remove
remove_pos
clear

static int list64::remove(
  List64 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 List64 - 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;
    List64		li = list64::alloc ();
for (i=1; i< 6; i++) list64::append (li, i); list64::insert (li, 2);
for (i=0; i< list64::length (li); i++) { // 123452 showmessage ("1:%d", i+1, list64::get (li, i)); }
list64::remove_pos (li, 3); for (i=0; i< list64::length (li); i++) { // 12352 showmessage ("2:%d", i+1, list64::get (li, i)); }
list64::remove (li, 2); for (i=0; i< list64::length (li); i++) { // 135 showmessage ("3:%d", i+1, list64::get (li, i)); }
list64::release (li); }

v4.0.5 R9955, 3. Feb 2016

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

append
insert
remove_pos
clear

static int list64::remove_pos(List64 li, int pos)

Entferne eine Position aus 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   1 Aktion erfolgreich, 0 sonst
li List64 - Liste
pos int - 0-basierte Löschposition

Im Beispiel sehen sie die Wirkungsweise von remove und remove_pos

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

v4.0.5 R9955, 3. Feb 2016

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

append
insert
remove
clear

static int list64::clear(List64 li)

Entferne alle Elemente der Liste

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

v4.0.5 R9955, 3. Feb 2016

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

append
insert
remove
remove_pos

static int list64::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);

v4.0.5 R9955, 3. Feb 2016

priint:comet InDesign® Plug-Ins, comet_pdf

placeholder::update_link_states
placeholder::reload_panel

static int list64::classid(List64 li)

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

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

v4.0.5 R9955, 3. Feb 2016

priint:comet InDesign® Plug-Ins, comet_pdf

static int list64::index(List64 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 List64 - Liste, deren Index-Typ ermittelt werden soll

v4.0.5 R9955, 3. Feb 2016

priint:comet InDesign® Plug-Ins, comet_pdf

static int list64::complete(List64 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 List64 - Liste

v4.0.5 R9955, 3. Feb 2016

priint:comet InDesign® Plug-Ins, comet_pdf

static char* list64::gettext(
  List64 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
Stauden kPanelFlowers 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*
LatinName char*
GermanName char*
FamilyName char*
ImagePath char*
Sendungsplanung kPanelTV 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*
Start char*
StartTime char*
StartDate char*
End char*
EndTime char*
EndDate char*
State int
ToDelete int
Sender char*
Title char*
Bewertung char*
Module char*
Info1 char*
Info2 char*
Info3 char*
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
Elemente kPanelElements 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*
ProductID int
ProductID2 int
ProductID3 int
Name char*
Value char*
Selfloader char*
ToDelete int
RelatedToID int
Sendungsrecherche kPanelTVRecherche 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*
Start char*
StartTime char*
StartDate char*
End char*
EndTime char*
EndDate char*
State int
ToDelete int
Sender char*
Title char*
Bewertung char*
Module char*
Info1 char*
Info2 char*
Info3 char*
Selfloader char*
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
Exportgruppen (Arbeitsvorbereitung) kPanelExportgroups 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*
Label char*
Sender char*
Selfloader char*
ToDelete char*
LabelID int
SenderID int
Palette '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
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 List64 - Liste
index int - 0-basierter Listenindex
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];
    List64 	prod 	= list64::alloc (3,1,1);
    int		i	= 0;
for (i=0; i<list64::length (prod); i++) { list64::gettext (prod, i, "StringID", s1);
showmessage (s1); }
return 0; }

v4.0.5 R9955, 3. Feb 2016

priint:comet InDesign® Plug-Ins, comet_pdf

static int list64::getint(
  List64 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 List64 - Liste
index int - 0-basierter Listenindex
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.

v4.0.5 R9955, 3. Feb 2016

priint:comet InDesign® Plug-Ins, comet_pdf

static float list64::getfloat(
  List64 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 List64 - Liste
index int - 0-basierter Listenindex
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.

v4.0.5 R9955, 3. Feb 2016

priint:comet InDesign® Plug-Ins, comet_pdf

static int list64::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"

v4.0.5 R9955, 3. Feb 2016

priint:comet InDesign® Plug-Ins, comet_pdf

static int list64::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 (grün) 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.

v4.0.5 R9955, 3. Feb 2016

priint:comet InDesign® Plug-Ins, comet_pdf

static int list64::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)

v4.0.5 R9955, 3. Feb 2016

priint:comet InDesign® Plug-Ins, comet_pdf

static int list64::sort(List64 li, int direction = 0)

Sortieren einer Liste.

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

0 : aufsteigend
1 : absteigend
int main ()
{
    List64 	li = list64::alloc ();
    int 	i;
list64::insert (li, 12); list64::insert (li, 20); list64::insert (li, 9); list64::insert (li, 3); list64::insert (li, 42);
wlog ("", "sort ascent\n"); list64::sort (li); for (i = 0; i < list64::length (li); i++) wlog ("", "%d\t%d\n", i+1, list64::get (li, i)); wlog ("", "\n\n");
wlog ("", "sort descent\n"); list64::sort (li, 1); for (i = 0; i < list64::length (li); i++) wlog ("", "%d\t%d\n", i+1, list64::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 ()
{
    List64		li	= list64::alloc ();
    int			i;
for (i=1; i<6; i++) list64::insert (li, 3*i);
for (i=list64::first (li); i; i=list64::next (li)) { showmessage ("%d", i); } list64::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 ()
{
    List64		li, li2, li3;
    int			id, id2, id3;
li = list64::alloc (1, 0, 1);// Alle IDs li2 = list64::alloc (1, 0, 2);// Alle ID2s li3 = list64::alloc (1, 0, 3);// Alle ID3s
if (!li || !li2 || !li3) { showmessage ("'Produktrecherche' nicht geöffnet."); return 1; }
id = list64::first (li); id2 = list64::first (li2); id3 = list64::first (li3); while (id) { showmessage ("ID=(%d, %d, %d", id, id2, id3);
id = list64::next (li); id2 = list64::next (li2); id3 = list64::next (li3); }
list64::release (li); list64::release (li2); list64::release (li3); }

Das dritte Beispiel funktioniert für beliebige Listen

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

Im folgenden Beispiel sehen sie die Wirkungsweise von remove und remove_pos

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

Hier ein Beispiel speziell für 64bit-Zahlen.

int main ()
{
    List64			li = list64::alloc ();
    int 			i;
list64::insert (li, 6917529027641081856); list64::insert (li, 6917529027641081860); list64::insert (li, 234); list64::insert (li, 6917529027641081444); list64::insert (li, 9223372036854775807);
wlog ("", "List step 1\n"); for (i = list64::first (li); i; i = list64::next (li)) wlog ("", "step 1 : %d\n", i); wlog ("", "\n\n"); wlog ("", "get_pos ('6917529027641081444') == %d\n", list64::get_pos (li, 6917529027641081444));
list64::insert (li, 7777777777777777777); list64::insert (li, -8888888888888888888, 2); wlog ("", "List step 2\n"); for (i = list64::first (li); i; i = list64::next (li)) wlog ("", "step 2 : %d\n", i); wlog ("", "\n\n");
wlog ("", "List step 2 (reverse)\n"); for (i = list64::last (li); i; i = list64::prev (li)) wlog ("", "step 2r : %d\n", i); wlog ("", "\n\n");
list64::remove (li, 7777777777777777777); list64::remove_pos (li, 2);
wlog ("", "List step 3\n"); for (i = list64::first (li); i; i = list64::next (li)) wlog ("", "step 3 : %d\n", i); wlog ("", "\n\n");
wlog ("", "\n\n"); wlog ("", "sort ascent\n"); list64::sort (li); for (i = 0; i < list64::length (li); i++) wlog ("", "%d\t%d\n", i+1, list64::get (li, i)); wlog ("", "\n\n");
wlog ("", "sort descent\n"); list64::sort (li, 1); for (i = 0; i < list64::length (li); i++) wlog ("", "%d\t%d\n", i+1, list64::get (li, i)); wlog ("", "\n\n");
return 0; }

Seit
v4.0.5 R9955, 3. Feb 2016
Letzte Änderung
30.07.2025, 07:35 Uhr
Autor
Matthias Paul Seidel

Alphabetic index HTML hierarchy of classes or Java