Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi CompareMem anders !! (https://www.delphipraxis.net/87874-comparemem-anders.html)

Scorpion 6. Mär 2007 17:31


CompareMem anders !!
 
Hi, ich will mit folgendem Code überprüfen, ob Teile eines Strings direkte Wiederholungen haben, wie z.B AnAn oder 123123

Delphi-Quellcode:
function CheckDoubles(const s: string): Boolean;
var
  idx, len: Integer;
begin
  Result := False;
  for idx := 1 to Length(s) - 1 do
    for len := 1 to (Length(s) + 1 - idx) div 2 do
      if CompareMem(@s[idx], @s[idx + len], len) then
        Exit;
  Result := True;
end;
Nur leider verwende ich PascalScript, was den Befehl CompareMem nicht kennt. Wie könnte ich denn diese Funktion anderes schreiben, damit es funktioniert ?

Vielen Dank

marabu 6. Mär 2007 19:06

Re: CompareMem anders !!
 
Hallo Nico,

wenn PascalScript Zeiger-Arithmetik beherrscht, dann kannst du den Aufruf von CompareMem() in Hawkeyes Funktion durch eine eigene Funktion unterstützen:

Delphi-Quellcode:
function CompareMem(P1, P2: PChar; Length: Integer): Boolean;
begin
  Result := False;
  while Length > 0 do
    if P1^ = P2^ then
    begin
      Dec(Length);
      Inc(P1);
      Inc(P2);
    end else Exit;
  Result := True;
end;
Grüße vom marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:48 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