Thema: Delphi StrLCopy : Non VCL

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#16

AW: StrLCopy : Non VCL

  Alt 28. Apr 2012, 13:17
Och, die Hinweise für C++ (ala man sollte Makros wie StringCchCopy verwenden) ignoriere ich grundsätzlich.


@hator: Tausch besser noch schnell das PChar durch PAnsiChar aus,
denn dieser Code ist definitiv nur für ANSI geeignet.


[add]
ASM > Pascal
Delphi-Quellcode:
function StrLCopy(Dest, Source: PAnsiChar; MaxLen: Cardinal): PAnsiChar;
var
  i: Cardinal;
begin
  if Byte(Dest) <> 0 then begin
    i := MaxLen;
    while Source^ <> #0 do begin
      Dest^ := Source^;
      Inc(Source);
      Inc(Dest);
      Dec(i);
    end;
    Inc(i);
  end;
  Dec(MaxLen, i);
  Source := Dest; // hier hab ich wohl irgendwas falsch übersetzt (ich versuch's später nochmal)
  Dest := Result; //
  Result := Source; //
{****
  i := MaxLen shr 2;
  while i > 0 do begin
    PLongWord(Dest)^ := PLongWord(Source)^;
    Inc(Source, 4);
    Inc(Dest, 4);
    Dec(i);
  end;
  i := MaxLen and 3;
  while i > 0 do begin
    Dest^ := Source^;
    Inc(Source);
    Inc(Dest);
    Dec(i);
  end;
*****}

  while MaxLen > 0 do begin
    Dest^ := Source^;
    Inc(Source);
    Inc(Dest);
    Dec(MaxLen);
  end;
{*****}
  Dest^ := #0;
end;
$2B or not $2B

Geändert von himitsu (28. Apr 2012 um 13:43 Uhr)
  Mit Zitat antworten Zitat