Hi,
ich habe eine lange Zeichenkette und suche nach einem bestimmten Wort
(oder halt einer Zeichenkette). Ich hab das mal so realisiert und wollt
fragen, ob man das so machen kann...
Delphi-Quellcode:
function vgl (str1, str2 : string): boolean;
var s, s2 : string;
x, richtig, i, o : integer;
uebereinstimmung : boolean;
begin
if gks = false then begin // Wenn gks = false, dann wird der Text in Großbuchstaben umgewandelt
str1 := Uppercase (str1);
str2 := Uppercase (str2);
end;
vgl := false;
if str1 = str2 then begin
result := true;
exit;
end;
if length(str2) > length(str1) then begin
s := str1;
str1 := str2;
str2 := s;
end;
{ str1 ist die längere satzkette }
s := '';
i := -1; // Wenn Vgl.String > Org.String ist, keine Übereinstimmung mehr möglich
uebereinstimmung := false;
while (i <= length(str1)) and (i <= length(str1)-length(str2))
and (uebereinstimmung = false) do begin
inc (i);
o := 0;
richtig := 0;
for o := 0 to length(str2)-1 do begin
if (str1[i+o] = str2[1+o]) then inc (richtig);
if richtig = length(str2) then uebereinstimmung := true;
end;
end;
if uebereinstimmung = true then result := true;
end;
Also man übergibt der Funktion zwei Strings. Die längere Zeichenkette wird dann
Zeichen für Zeichen mit Zeichen der kürzeren Zeichenkette verglichen.