In click.EXE 4.0 können diverse Funktionen auf Listen angewandt werden, um den Umgang mit Datenmengen zu vereinfachen.
Als Liste wird ein Text bezeichnet, der mit einem definierten Zeichen (etwa ; oder Zeilenumbruch ^M bzw. ¶) getrennte Teile enthält.
Hinweis: Mit dem Platzhalter [cX.ParameterTrenner] kann ein spezielles Trennzeichen für Listen definiert werden.
Einige der Systemplatzhalter liefern eine Liste als Ergebnis (teilweise nur in speziellen Lizenzstufen), etwa:
[Datei.Liste X] | liefert eine Liste der zum Parameter passenden Dateien |
[Datei.SucheListe] | enthält alle Dateien der letzten entsprechenden Dateisuche |
[Fenster.Liste] | liefert eine Liste der sichtbaren Fenstertitel bzw. -texte |
[Prozess.Liste] | liefert eine Liste (Komma-separiert) mit allen Prozess-IDs; optional kann eine Maske für die Namen angegeben werden |
[PlugIn.Liste] | liefert eine Liste aller installierten PlugIn-Namen |
[Drucker.Liste] | liefert eine Liste aller installierten Drucker |
[Stapel(ID).Liste] | Lesen/Setzen: Stapelinhalt als zusammengesetzte Liste; optional kann ein Trennzeichen angegeben werden, etwa [Stapel(x).Liste(;)] Hinweis: Der Stapel eignet sich auch hervorragend für die Verarbeitung von Listen! |
[Var(ID)._Eigenschaften] | Lesen/Schreiben des Gesamtinhalts eines Variablenobjekts als Zuweisungsliste (s.u.) |
[Struktur(ID)._Liste] | Lesen/Schreiben des Gesamtinhalts eines Strukturobjekts als serialisierte Liste |
[DragDrop.DateiListe] | liefert eine Liste aller per Drag&Drop verschobenen Dateien |
[Registry.SchlüsselListe X] | liefert eine Liste der Unterschlüssel des Registry-Schlüssels X |
[Registry.WerteListe X] | liefert eine Liste der Werte des Registry-Schlüssels X |
[Anzeige.Element(ListenID).Liste] | liefert/setzt den gesamten Inhalt des Listenelements als Liste |
[Anzeige.Element(ListenID).Markierte] | liefert eine ;-separierte Liste der markierten Einträge (bei Mehrfachauswahl) |
[Editor.Markenliste] | liefert eine Liste aller Marken im Skript |
[Editor.Elementeliste] | liefert eine Liste aller Elemente-IDs im Skript |
[Editor.Variablenliste] | liefert eine Liste aller im Skript verwendeten Variablen |
[Editor.Fensterliste] | liefert eine Liste aller Fenster-IDs im Skript |
[cX.SchriftenListe] | liefert eine Liste aller installierten Schriften |
[cX.Zufallszahlen X] | liefert eine Liste mit Zufallszahlen zwischen 0 und X (ohne Duplikate) |
Auch bei einigen PlugIn-Befehlen wie etwa Datenbank oder Tabelle kann der Inhalt als Liste ausgelesen und/oder zurückgeschrieben werden (etwa per [Tabelle.Text])
Zusätzlich stehen spezielle Platzhalter zur Verfügung, um die Auswertung von Listen zu vereinfachen:
[cX.AnzahlZeilen Liste] | Anzahl Zeilen in der Liste ermitteln |
[cX.AnzahlEinträge Trenner;Liste] | Anzahl Einträge in der mit 'Trenner' (Standard=";") getrennten Liste ermitteln |
[cX.ZeilenSortieren Liste] | Übergebene Liste alphanumerisch sortiert zurückgeben |
[cX.ZeileAus Nummer;Liste] | Zeile 'Nummer' (1-n) aus der Liste holen |
[cX.ZeileLöschen Nummer;Liste] | Zeile 'Nummer' (1-n) aus der Liste löschen und Restliste zurückgeben |
[cX.EintragAusListe Nummer;Trenner;Liste]
Teil 'Nummer' (1-n) aus der Liste (etwa eine CSV-Zeile) holen, die mit Trenner getrennt sind (Standard-Trenner=";"). Die Teile können hier optional auch in Anführungszeichen stehen (""), wenn in ihnen das Trennzeichen vorkommt - die Anführungszeichen werden dann entfernt
Der Bearbeite-Befehl kann ebenfalls dazu eingesetzt werden, mit Listen zu arbeiten.
Die Pro-Lizenz bietet noch weitere mächtige Funktionen für den Umgang mit Listen, etwa:
• | Der Platzhalter-Bereich [Stapel.X] eignet sich hervorragend dazu, Listen zu verarbeiten. Nach dem Einlesen einer Liste in einen Stapel kann dieser analysiert und weiter bearbeitet werden, etwa sortiert, gemischt usw.. |
• | Mit der Spezialschleife vom Typ "Liste" lässt sich eine Schleife über alle Einträge der Liste durchlaufen. |
Ebenfalls sehr vielseitig ist der Platzhalter-Bereich [Var(ID).X], in dem beliebige Variablen zusammengefasst werden können
Hinweis: Bei der Eingabe von Parametern in eine Befehlsmaske kann auch ein komplexerer, mehrzeiliger Parameter (eben auch eine Liste) über die Taste [F7] in einem eigenen Dialog bearbeitet werden.
Es ergeben sich durch diese flexiblen Listen diverse Vorteile. So kann etwa das Ergebnis von [Datei.Liste] (oder einer anderen Listenabfrage) direkt in ein Listenelement oder ein Stapelobjekt etc. geschrieben werden, um dort angezeigt bzw. weiter verarbeitet zu werden. Ebenso kann der Inhalt eines kompletten Elements, welches seinen Inhalt als Liste anbietet, mit einem einzigen Befehl in eine Datei geschrieben bzw. wieder gelesen oder per Netzwerk weitergegeben werden.
Zuweisungslisten
Eine besondere Form von Listen sind die Zuweisungslisten, bei denen üblicherweise eine mehrzeilige Liste mit Name=Wert-Paaren angegeben wird. Solche Listen werden etwa für die Extra-Eigenschaften für Anzeigefenster und -elemente oder -listen (auch als [Anzeige.Element(ID).Eigenschaften]) sowie das Mehrfach-Setzen verwendet. Auch das [Var()]-Element kann mit dieser Art Liste umgehen.
Auch in diesem Fall lassen sich mit einem einzigen Befehl diese unterschiedlichen Funktionsbereiche kombinieren.
cX-Webseite: http://www.clickexe.de