Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Inkompatible Typen - deletefile (https://www.delphipraxis.net/56344-inkompatible-typen-deletefile.html)

needatip 4. Nov 2005 10:30


Inkompatible Typen - deletefile
 
Hallo,

ich bekomme bei folgender Anweisung

Delphi-Quellcode:
var dateiname : string;
dateiname := 'irgendwas';
DeleteFile(dateiname);
beim Compilieren die Fehlermeldung:
Zitat:

Inkompatible Typen: String und PAnsiChar
In einer anderen Unit habe ich das auch stehen und der Compiler meckert dort nicht !

Was mache ich falsch ? Hab ich was vergessen ?

ichbins 4. Nov 2005 10:38

Re: Inkompatible Typen - deletefile
 
Delphi-Quellcode:
deletefile(pansichar(dateiname));
pansichar ist ein pointer auf einen string.

dahead 4. Nov 2005 10:45

Re: Inkompatible Typen - deletefile
 
also normalerweise erwartet DeleteFile einen String, die Funktion stammt dabei aus der SysUtils. Müsste also egtl. so stimmen wie du es schreibst (wenn du die SysUtils Funktion verwendest).

Wenn du DeleteFile aus der Windows Unit verwendest, erwartet diese einen PAnsiChar. Du kannst es dann auch via @Dateiname[1] umwandeln und löschen.

shmia 4. Nov 2005 10:49

Re: Inkompatible Typen - deletefile
 
DeleteFile gibt es in zwei Unit: Windows und SysUtils.
Die Deklarationen unterscheiden sich:
Delphi-Quellcode:
// aus Windows
function DeleteFile(lpFileName: PChar): BOOL; stdcall;

// aus SysUtils
function DeleteFile(const FileName: string): Boolean;
Wenn du SysUtils.DeleteFile(dateiname) schreibst, ist dein Problem weg.

ichbins 4. Nov 2005 11:38

Re: Inkompatible Typen - deletefile
 
via @-Zeichen geht es nicht immer. Ich hab das erst vor einer halben stunde versucht eine nonvcl caption zuzuweisen mit dem @ und da kam nur Zeichensalat raus.

needatip 5. Nov 2005 07:18

Re: Inkompatible Typen - deletefile
 
Super, danke für die vielen Tips.

SirThornberry 5. Nov 2005 08:45

Re: Inkompatible Typen - deletefile
 
@ichbins: Dann hast du wohl "[1]" vergessen wenn nur Zeischensalat raus kam.


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