Zitat von
Salomon:
Was bewirken die "*" [...] vor den Variablen?
Das * ist in diesem Fall (es steht natürlich auch für Multiplikation) der Derefernzierungsoperator: ist cmd ein Pointer, so ist *cmd der Inhalt der Speicherstelle, auf die der Pointer zeigt.
Zitat von
Salomon:
Was macht die Function "!strnicmp", konnte dazu nichts in der Delphi Hilfe finden.
strnicmp() verlgleicht zwei Strings, ohne auf die Groß-und Kleinschreibung zu achten. Das dient zur Sortierung von Wörtern. Die Funktion gibt einen Wert kleiner null zurück, ist String 1 kleiner als String 2 (weiter oben im Alphabet), einen Wert > 0, ist String 1 größer als String 2 und 0, wenn beide Strings gleich groß sind.
Zitat von
Salomon:
Was macht die Schleife???
Du hast es hier mit einem C-typischen Konstrukt zu tun, das funktioniert, weil in C ein Array ein
Pointer auf sein erstes Element ist. Die Expression "*cmd && *cmd < ' '" überprüft, ob ein Zeichen nicht \0 und außerdem ein darstellbares kein Zeichen ist. Ich nehme einmal an, dass buffer ein nullterminierter String ist, also ein *char oder char[]: Die Schleife geht vom ersten Zeichen an durch das Array durch und zählt jeweis den Pointer eine Stelle höher, d.h. es wird immer das nächste Element im Array überprüft. Wenn cmd auf ein darstellbares Zeichen zeigt, wird der nachfolgende Code ausgeführt. Weil der Code auch abbricht, wenn das Ende des Strings (\0) erreicht ist (Überprüfung "*cmd"), sorgt die nachfolgende if-Abfrage dafür, dass der folgende Code nicht ausgeführt wird, wenn dies geschieht (es wird zum Anfang der Schlefe gesprungen, in der sich der Code befindet, den du gepostet hast).
MfG,
d3g