Eike Lange schrieb:
On Tue, Mar 27, 2001 at 11:28:16AM +0200, erkaN wrote:
Ich hab die Datei "str-0.9.4.tar.gz" http://www.engelschall.com/sw/str/ untergelanden. Diese Datei enthält eine schöne Funktion, die mir gefallen hat. Gpc-Pascal hat vieleict das gleiche oder ähnliche Funktion, das weis ich leider nicht: Es geht um diese Vergleich-Funktion hier str_compare: This function lexicographically compares two strings. A maximum number of compared characters can be specified and the comparison can be optionally done case-insensitive
Mhh. Keine Ahnung, ob es sowas in gpc gibt, aber Du kannst folgendes schreiben:
Was heißt hier "keine Ahnung"? Du hast die Antwort doch schon gegeben. ;-)
In Pascal kann man Strings einfach mit =, <>, <, >, <=, >= vergleichen (lexikographisch).
Wenn "case-insensitivity" (kennt jemand einen vernünftigen deutschen Ausdruck dafür?) gewünscht ist, wie Eike sagte, LoCaseStr (Unit GPC) verwenden, und wenn nur die ersten paar Zeichen verglichen werden sollen, Copy:
if Copy ('Hallo', 1, 4) = Copy ('Halli', 1, 4) then ...
Wenn gewünscht, kann man eine Funktion schreiben, die das alles zusammenfaßt, mit entsprechenden Parametern (obwohl ich es in den meisten Fällen einfacher finde, einfach den Vergleich und ggf. LoCaseStr und Copy in den normalen Programmtext zu schreiben). Aber wenn man so eine Funktion schreibt, dann vielleicht doch bitte in Pascal, ohne mit C-Bibliotheken herumzuhantieren. (-; Nichts gegen C-Bibliotheken im allgemeinen, aber für Dinge, die Pascal eh schon kann, würde ich nicht unbedingt darauf zurückgreifen.)
Ach ja, in der Unit GPC gibt's auch noch StrEqualCase, die i.w. das gleiche macht wie `LoCaseStr (s1) = LoCaseStr (s2)', so daß man sich in diesem halbwegs häufigen Fall etwas Schreibarbeit spart (und sie ist auch ein kleines bißchen effizienter). Für < und > gibt's so eine Funktion allerdings (noch) nicht...
Frank