AGB  ·  Datenschutz  ·  Impressum  







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

Problem mit FindNext und FindClose

Ein Thema von manuel · begonnen am 2. Mär 2005 · letzter Beitrag vom 2. Mär 2005
 
manuel

Registriert seit: 17. Sep 2003
Ort: MainBootRecord
72 Beiträge
 
Delphi 4 Client/Server
 
#1

Problem mit FindNext und FindClose

  Alt 2. Mär 2005, 14:26
Hi Leute,

in einem Thread-Objekt habe ich eine Funktion implementiert, die die Gesamtgrösse eines Verzeichnisbaumes und die Namen der darin enthaltenen Dateien in TStringlists einfügt.

Delphi-Quellcode:
filesize_total:Integer;
destinationdir: String;
FilesToCopy, DirectoriesToCreate:TStringlist;
SizeOfFiles:TStringlist;


function ThreadCopy.getDirectoriesFiles(startDirectory:string):longint;
//Bestimmt Verzeichnisse und Dateien
var SR : TSearchRec;
    Groesse : longint;
    Verzeichnis:String;
begin
  Verzeichnis:=startDirectory;
  Groesse:=0;
  DirectoriesToCreate.Add(Verzeichnis);
  if Verzeichnis[length(Verzeichnis)]<>'\then
    Verzeichnis:=Verzeichnis+'\';
  if FindFirst(Verzeichnis+'*.*',$3F,SR)=0 then begin
    repeat
      if ((SR.Attr and faDirectory)>0) and (SR.Name<>'.') and (SR.Name<>'..') then
      //Verzeichnis erkannt
      begin
        //Rekursiver Funktionsaufruf
        Groesse:=Groesse+getDirectoriesFiles(Verzeichnis+SR.Name);
        if (SR.Name<>'.') and (SR.Name<>'..') then
        begin
          if DirectoriesToCreate.IndexOf(Verzeichnis+SR.Name) = -1 then
          //Falls Eintrag in Liste noch nicht vorhanden, Eintrag hinzufügen
          DirectoriesToCreate.Add(Verzeichnis+SR.Name);
        end;
      end
      else
      begin
        //Datei erkannt
        SizeOfFiles.Add(IntToStr(SR.Size));
        Groesse:=Groesse+SR.Size;
        if (SR.Name<>'.') and (SR.Name<>'..') then
        begin
          //Falls Eintrag in Liste noch nicht vorhanden, Eintrag hinzufügen
          if FilesToCopy.IndexOf(Verzeichnis+SR.Name) = -1 then FilesToCopy.Add(Verzeichnis+SR.Name);
        end
      end;
    until FindNext(SR)<>0;
    FindClose(SR);
  end;
Bei der FindCLose(SR) in der vorletzen Zeile erhalte ich die Meldung
"Incompatible Types: Cardinal und TSearchRec".

Wo liegt der Fehler?

Baue ich genau den gleichen Quelltext in einen anderen Thread ein funktionierts problemlos

Hat vielleicht jemand eine Idee?


Gruß
Manuel
sometimes I feel diagonally parked in a parallel universe
  Mit Zitat antworten Zitat
 


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 10:07 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz