![]() |
Hm... also gut ich will es versuchen.
Es gibt verschiedene Funktionen (z.B. findwindow) diese Funktionen haben verschiedene Parameter (z.B. Strings, Variablen [$x, ...], Konstanten). Nun ist es halt auch so, dass man als Parameter auch zusammengesetzte Sachen benutzen kann. Also z.B. "Ein String mit einer Variable: ".$x Das ganze ist eine einfache Skriptsprache, also soll nix wirklich Großes werden (also Abfragen, Schleifen, ...)! Hoffe, dass es das war, was du wolltest... ;) Chris |
Moin Chris,
das mit dem Zusammensetzen hatten wir doch schon mal weiter oben im Thread? Wenn es "string".$4 und "string$4" geben soll (was soll eigentlich der Punkt? Ersatz für +?), müssest Du noch eine Möglichkeit finden, eine Variable in einem String als solche zu erkennen. Das liesse sich dann z.B. so machen wie in C, mit Hilfe eines Escape Characters. In C dient dazu der \. Soll dieser dargestellt werden muss man ihn doppelt schreiben. (siehe z.B. auch Dateipfade in REG Dateien, da hat MS es auch so übernommen (warum eigentlich?)). Statt beide Möglichkeiten ins Auge zu fassen, halte ich es für sinnvoll, wenn Du Dich für eine entscheidest. Leichter umsetzen lassen dürfte sich die erste. Ich empfinde sie auch als übersichtlicher. Um so eine Zeile zu ermöglichen, musst Du Dir Regeln einfallen lassen, was alles auf was folgen darf, und was für eine Bedeutung das dann hat. Deshalb halte ich es für empfehlenswert beim Aufspalten einer Kommandozeile den einzelnen Teilen eine Kennung mitzugeben, soll heissen: Beim Aufspalten werden die Bestandteile in, sogenannten, Token gespeichert. Dazu kannst Du einfach einen Record erstellen, der zwei Felder enthält. Eines für die Kennung um was es sich handelt (Schlüsselwort, Variable, Stringkonstante, Operator ...), und eines das das zugehörige Attribut enthält (findwindow, $1...) wobei natürlich bei festliegenden Attributwerten (z.B. Schlüsselworten) das Eintragen des Attributes entfallen kann. Da Du Variablen verwenden willst wirst Du auch noch eine Variablenliste brauchen, in der Du dann die aktuellen Wert merken kannst. Was nun die Regeln angeht: Du musst prüfen, was auf (z.B.) FindWindow folgt, und ob es folgen darf (ggf. Fehler). Stösst Du auf eine Stringkonstante, so kann der Parameter damit komplett sein, oder aber ein . (+) folgen. Ist letzteres der Fall, so muss entweder ein Weiterer String folgen, oder eine Variable usw. Ich hoffe, dass alles war einigermassen verständlich. |
Verständlich!
Ich wollte sowieso nur eine Möglichkeit nutzen. Jenachdem, was einfacherer ist. Ich versuch das ganze mal weiter zuführen (deine Funktion ein wenig modifizieren :roll:). Chris |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz