Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Unicode Frage Char(Byte(String[Byte]) Delphi 2009 (https://www.delphipraxis.net/120832-unicode-frage-char-byte-string%5Bbyte%5D-delphi-2009-a.html)

Samashy 17. Sep 2008 12:51


Unicode Frage Char(Byte(String[Byte]) Delphi 2009
 
Ich muss ehrlich zugeben, dass ich den Quelltext zu meiner Frage ganz und gar nicht verstehe. Er kommt aus einer Passwortverschlüsselung. (Crypt32)

Delphi-Quellcode:
function Decrypt(const InString:string; StartKey,MultKey,AddKey:Integer): string;
var
  I : Byte;
begin
  Result := '';
  for I := 1 to Length(InString) do
  begin
    Result := Result + CHAR(Byte(InString[I]) xor (StartKey shr 8));
    StartKey := (Byte(InString[I]) + StartKey) * MultKey + AddKey;
  end;
end;
Nach dem Compilieren mit Delphi 2009 wird kein Pw mehr entschlüsselt. Bitte, kann mir jemand helfen, wie ich folgendes Statement in Unicode umschreiben muss?
Delphi-Quellcode:
Result := Result + CHAR(Byte(InString[I]) xor (StartKey shr 8));
Danke,
Romy
PS: So weit steig ich da noch nicht durch.

jfheins 17. Sep 2008 12:54

Re: Unicode Frage Char(Byte(String[Byte]) Delphi 2009
 
Ersetze String duch AnsiString ;)
(wenn du keine kompatibilität verlieren möchtest ....)

Und natürlich Char durch AnsiChar

mkinzler 17. Sep 2008 12:54

Re: Unicode Frage Char(Byte(String[Byte]) Delphi 2009
 
Statt string AnsiString nehmen

Samashy 17. Sep 2008 12:57

Re: Unicode Frage Char(Byte(String[Byte]) Delphi 2009
 
:bounce1: Danke!!! Funktioniert :hello:

Romy

Samashy 17. Sep 2008 14:00

Re: Unicode Frage Char(Byte(String[Byte]) Delphi 2009
 
Habe in dem Zusammenhang gleich noch eine Frage:

Delphi-Quellcode:
function CrGetTempName (const Extension: ansistring) : ansistring;
var
  Buffer: array[0..MAX_PATH] of ansichar;
begin
  repeat
    GetTempPath(SizeOf(Buffer) - 1, Buffer);
    GetTempFileName(Buffer, '~', 1, Buffer);
    Result := ChangeFileExt(Buffer, Extension);
  until not FileExists(Result);
end;
Inkompatible Typen 'array' and 'PWideChar'

kann mir jemand helfen, wie ich das umwandel`?

Danke, Romy

Lasse2002 17. Sep 2008 14:05

Re: Unicode Frage Char(Byte(String[Byte]) Delphi 2009
 
Zitat:

Zitat von Samashy
Inkompatible Typen 'array' and 'PWideChar'

kann mir jemand helfen, wie ich das umwandel`?

In diesem Fall mußt du AnsiChar und AnsiString durch Char bzw. string ersetzen, da GetTempPath jetzt eine Unicode-Funktion ist. SizeOf(Buffer) mußt du mit Length(Buffer) ersetzen, da GetTempPath die Länge des Buffers in TChars (also in Buchstaben) erwartet.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:04 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz