AW: Inkompatible Typen: AnsiChar und Char
Ohh, übersehn.
Diese ShortStrings, also ShortString und String[123] sind immernoch ANSI-Records ... da hatte sich mit Delphi 2009 nix dran geändert. Nur der LongString-Typ "String" wurde von AnsiString auf UnicodeString geändert. Also ist diese Meldung natürlich korrekt, wenn man hier einen Char (sein D2009 ein WideChar) versucht an einen AnsiChar zuzuweisen. |
AW: Inkompatible Typen: AnsiChar und Char
Zitat:
Delphi-Quellcode:
krachen, da
s := Edit6.Text;
Delphi-Quellcode:
ein Shortstring ist und
s
Delphi-Quellcode:
eine Widechar.
Edit1.Text
Ich würde gleich einen Zeiger übergeben, der als PBytearray agiert, (ich Liebe dieses verschämte herumhampeln um Char/WideChar) denn wie an anderer Stelle schon einmal jemand schrieb, es werden Bytes und keine Chars verschlüsselt. Gruß K-H |
AW: Inkompatible Typen: AnsiChar und Char
Wenn man einen String schon als Bytearray verarbeitet, kann man auf Konvertierung auch ganz verzichten:
Delphi-Quellcode:
for y := 1 to Length(s) do
c[y] := 23 xor c[y]; |
AW: Inkompatible Typen: AnsiChar und Char
Und dann noch statt
Delphi-Quellcode:
Length
Delphi-Quellcode:
verwenden, dann ist man auf der sicheren seite
SizeOf
Gruß K-H |
AW: Inkompatible Typen: AnsiChar und Char
Zitat:
Fritz |
AW: Inkompatible Typen: AnsiChar und Char
Warum über die Länge des Strings laufen, wenn man das Array verarbeitet?
War eher das gemeint?
Delphi-Quellcode:
Nur, da c absolut an s liegt und s irgendwas zwischen 1 und 255 Zeichen enthalten kann, wäre ein SizeOf(c) nicht wirklich hilfreich, da man ja dann auch Bytes verarbeitet, die im aktuellen String nicht belegt sind.
for y := 1 to SizeOf(c) do c[y] := 23 xor c[y];
Also dürfte Length(s) hier schon die sinnvollere Variante sein. |
AW: Inkompatible Typen: AnsiChar und Char
Berlin 10.1...
Strings haben WORDs und nicht bytes! Das gilt auf für Stringlisten!
Delphi-Quellcode:
Wenn S ein Short ist, wird es vom compiler convertiert...
S := Edit1.Text;
Also alle Meldungen richtig... |
AW: Inkompatible Typen: AnsiChar und Char
Delphi-Quellcode:
Funktioniert aber nur, wenn sich wirklich nur Ansi im Unicodestring befindet.
S := Edit1.Text; Wenn S ein Short ist, wird es vom compiler convertiert...
|
AW: Inkompatible Typen: AnsiChar und Char
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10: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