Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Inkompatible Typen: 'Char' und 'PAnsiChar' (https://www.delphipraxis.net/150630-inkompatible-typen-char-und-pansichar.html)

yasR 22. Apr 2010 12:22


Inkompatible Typen: 'Char' und 'PAnsiChar'
 
Hi,

bin gerade dabei ein Projekt von Delphi 2005 in Delphi 2010 portieren.

Delphi-Quellcode:

var1 [1] := var3 [5];
Inkompatible Typen: 'Char' und 'PAnsiChar'


var1 und var3 sind als String deklariert


Lg
yasR

himitsu 22. Apr 2010 12:29

Re: Inkompatible Typen: 'Char' und 'PAnsiChar'
 
Zitat:

Zitat von yasR
var1 und var3 sind als String deklariert

Wenn das stimmt, dann würde diese Fehlermeldung nicht auftauchen,
also bezweifle ich mal die Aussage über die "Strings"

oder du bist in der Zeile verrutscht und diese Fehlermeldung meint einen anderen Befehl.


Delphi-Quellcode:
Var A, E: String;
  B: PAnsiChar;
  C: Array of PAnsiChar;
  D: PPAnsiChar;

Begin
  A[1] := B[3]; // [DCC Fehler] ...: E2010 Inkompatible Typen: 'Char' und 'AnsiChar'
  A[1] := C[3]; // [DCC Fehler] ...: E2010 Inkompatible Typen: 'Char' und 'PAnsiChar'
  A[1] := D[3]; // [DCC Fehler] ...: E2016 Array-Typ erforderlich
  A[1] := E[3]; // nix

yasR 22. Apr 2010 12:36

Re: Inkompatible Typen: 'Char' und 'PAnsiChar'
 
sie sind so unter Public deklariert:

var1: string [6];

var3 : string;

himitsu 22. Apr 2010 12:42

Re: Inkompatible Typen: 'Char' und 'PAnsiChar'
 
Delphi-Quellcode:
var var1: String[6];
  var3  : String;

var1[1] := var3[5];
Würde es diesen Fehler ergeben,
Zitat:

[DCC Fehler] ...: E2010 Inkompatible Typen: 'AnsiChar' und 'Char'
welcher vollkommen korrekt ist, da var1=Ansi und var3=Unicode.

Der Typ String[x] ist ein ShortString und somit bleibt er ANSI, auch unter D2009/2010.
Paß also auf, daß du dir damit keine Informationen zerstörst.
Delphi-Quellcode:
var var1: String[6];
  var3  : String;

var1 := var3;
Zitat:

[DCC Warnung] ...: W1058 Implizite String-Umwandlung mit potenziellem Datenverlust von 'string' zu 'ShortString'

DeddyH 22. Apr 2010 12:46

Re: Inkompatible Typen: 'Char' und 'PAnsiChar'
 
Deklarier var 3 als AnsiString, dann müsste die Fehlermeldung verschwinden.

hoika 22. Apr 2010 12:49

Re: Inkompatible Typen: 'Char' und 'PAnsiChar'
 
Hallo,

String <> String[x], zumindestens unter D2010.


Heiko

yasR 22. Apr 2010 12:51

Re: Inkompatible Typen: 'Char' und 'PAnsiChar'
 
Danke, hab die Lösung von DeddyH verwendet.

yasR 22. Apr 2010 13:06

Re: Inkompatible Typen: 'Char' und 'PAnsiChar'
 
Habe jetzt nochmal so einen Fehler bekommen

Delphi-Quellcode:
var

daten : string;
puffer : string;
Delphi-Quellcode:
  for f := 1 to length(daten) do puffer[f] := daten[0 + f];

himitsu 22. Apr 2010 13:10

Re: Inkompatible Typen: 'Char' und 'PAnsiChar'
 
Zitat:

Zitat von yasR
Danke, hab die Lösung von DeddyH verwendet.

Sicher?

Den wenn das funktioniert, dann frage ich mich wo das PAnsiChar herkommt.

hoika 22. Apr 2010 13:11

Re: Inkompatible Typen: 'Char' und 'PAnsiChar'
 
Hallo,

entweder AnsiString oder per Copy/Delete


Heiko


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:12 Uhr.
Seite 1 von 2  1 2      

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