EAGLE Help

sort()


Funktion
Sortiert ein Array oder einen Satz von Arrays.

Syntax
void sort(int number, array1[, array2,...]);

Beschreibung
Die sort-Funktion sortiert entweder direkt ein array1, oder sie sortiert einen Satz von Arrays (beginnend mit array2), wobei array1 ein int-Array ist, das als Pointer-Array verwendet wird.

In jedem Fall definiert das Argument number die Zahl der Einträge im Array oder in den Arrays.

Einzelnes Array sortieren

Wenn die sort-Funktion mit einem einzelnen Arrray aufgerufen wird, wird dieses Array direkt sortiert, wie im folgenden Beispiel:

string A[];
int n = 0;
A[n++] = "World";
A[n++] = "Hello";
A[n++] = "The truth is out there...";
sort(n, a);
for (int i = 0; i < n; ++i)
    printf(A[i]);
Einen Satz von Arrays sortieren

Wenn die sort-Funktion mit mehr als einem Array aufgerufen wird, muß das erste Array ein int-Array sein, während alle anderen Arrays von jedem Typ sein können. Sie enthalten die zu sortierenden Daten. Das folgende Beispiel zeigt, wie das erste Array als Pointer verwendet wird:

numeric string Nets[], Parts[], Instances[], Pins[];
int n = 0;
int index[];
schematic(S) {
  S.nets(N) N.pinrefs(P) {
    Nets[n] = N.name;
    Parts[n] = P.part.name;
    Instances[n] = P.instance.name;
    Pins[n] = P.pin.name;
    ++n;
    }
  sort(n, index, Nets, Parts, Instances, Pins);
  for (int i = 0; i < n; ++i)
      printf("%-8s %-8s %-8s %-8s\n",
             Nets[index[i]], Parts[index[i]],
             Instances[index[i]], Pins[index[i]]);
  }
Die Idee dahinter ist, daß an ein Netz mehrere Pins angeschlossen sein können. In einer Netzliste wollen Sie unter Umständen die Netznamen sortieren und innerhalb eines Netzes die Bauteilenamen, und so weiter.

Beachten Sie die Verwendung des Schlüsselworts numeric in den String-Arrays. Das führt dazu, daß die String-Sortierung einen numerischen Teil am Ende des Namens berücksichtigt (IC1, IC2,... IC9, IC10 anstelle von IC1, IC10, IC2,...IC9).

Wenn man einen Satz von Arrays sortiert, muß das erste (Index-)Array vom Typ int sein und braucht nicht initialisiert zu werden. Jeder vor dem Aufruf der sort-Funktion vorhandene Inhalt wird mit den resultierenden Indexwerten überschrieben.


Index Copyright © 1999 CadSoft Computer GmbH