AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

DeleteFile() meldet Fehler

Ein Thema von Smiley · begonnen am 15. Jan 2006 · letzter Beitrag vom 15. Jan 2006
Antwort Antwort
Benutzerbild von Smiley
Smiley

Registriert seit: 9. Dez 2004
Ort: Gedern
205 Beiträge
 
Delphi 10.4 Sydney
 
#1

DeleteFile() meldet Fehler

  Alt 15. Jan 2006, 13:15
Ich habe einen ganz einfachen Codeschnipsel benutzt und bekomme beim Compilieren einen Fehler "Inkompatible Typen: 'TFileName und PAnsiChar'" in der Zeile mit DeleteFile(SearchRec.Name);
Sieht so aus, als wollte er die Windowsfunktion benutzen anstatt der Delphifunktion.

Delphi-Quellcode:
procedure DeleteAll(Dir, Files : string);
var
  SearchRec : TSearchRec;
begin
  if FindFirst(Dir+Files, faAnyFile, SearchRec) = 0 then
    begin
      DeleteFile(SearchRec.Name);
      while FindNext(SearchRec) = 0 do
        DeleteFile(Dir + SearchRec.Name);
    end;
  FindClose(SearchRec);
end;
Beim FindClose kommt dann auch eine entsprechende Meldung.

Was mache ich hier falsch ????
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: DeleteFile() meldet Fehler

  Alt 15. Jan 2006, 13:18
Falsche Reihenfolge der Uses-Anweisungen.

Sind in 2 Units die gleichen Funktionen definiert "gewinnt" die, dessen Eintrag in der Uses-Anweisung zu letzt vorkommt. Will man auf die Andere Zugreifen muss man den Unitnamen davorsetzen.

z.B. greift
Windows.Delete(..) immer auf die in Windows.Pas definierte Delete-Funktion zu auch wenn es woanders auch Delete-Funktionen geben würde und diese in der uses-Anweisung später auftauchen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#3

Re: DeleteFile() meldet Fehler

  Alt 15. Jan 2006, 13:18
oder einfach casten
DeleteFile(PChar(Dir + SearchRec.Name));
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Smiley
Smiley

Registriert seit: 9. Dez 2004
Ort: Gedern
205 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: DeleteFile() meldet Fehler

  Alt 15. Jan 2006, 13:51
@Bernhard

Das mit dem Unitproblem kam mir auch schon in den Sinn.
Dort habe ich aber Windows vorne und SysUtils hinten stehen, demnach müsste er zuerst auf die SysUtils zugreifen.

Delphi-Quellcode:
uses
  Windows, Messages, SysUtils,
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: DeleteFile() meldet Fehler

  Alt 15. Jan 2006, 13:55
Zitat von Smiley:
@Bernhard

Das mit dem Unitproblem kam mir auch schon in den Sinn.
Dort habe ich aber Windows vorne und SysUtils hinten stehen, demnach müsste er zuerst auf die SysUtils zugreifen.

Delphi-Quellcode:
uses
  Windows, Messages, SysUtils,
Dann geh mal mit der Maus im Editor auf DeleteFile und lass dir im Hint anzeigen von welcher Unit diese Funktion verwendet wird.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#6

Re: DeleteFile() meldet Fehler

  Alt 15. Jan 2006, 13:56
Ansonsten kann man auch noch schreiben:
SysUtils.DeleteFile(....
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Smiley
Smiley

Registriert seit: 9. Dez 2004
Ort: Gedern
205 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: DeleteFile() meldet Fehler

  Alt 15. Jan 2006, 14:33
@Bernhard
Der Hint zeigt SysUtils an, will aber die WindowsUnit benutzen.

Hab den Fehler gefunden:

In der Unit in der ich die Procedure definiert habe, war die Reihenfolge bei uses falsch.
Ich habe fälschlicherweise in der Unit nachgesehen, in der ich die Procedure benutzt habe. (sorry)

Die Hilfe von Dir Bernhard war aber genau das wonach ich gesucht habe, DANKE!

@SirThornberry
Danke auch für die Hilfe mit dem SysUtils.DeleteFile das geht natürlich auch.
Es ging mir aber darum, warum sucht er in der falschen Unit nach dem Programm.

Super schnelle Hilfe, danke an alle.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:09 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