Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi mehrere Dateien Copieren mit Copy (https://www.delphipraxis.net/5114-mehrere-dateien-copieren-mit-copy.html)

City Light 24. Mai 2003 13:23


mehrere Dateien Copieren mit Copy
 
Hallo

Ich versuche mehrere Dateien in ein Verzeichnis zu Copieren, dabei befinden Sie sich in einer TStringList

Delphi-Quellcode:
 

{
sl = C:\Verzeichnis\Test.txt
   = C:\Test\Delphi.txt
   = C:\Tool\Tool.txt
   usw.


var
  i: Integer;
  sl: TStringList;
begin
  sl := TStringList.Create;
for i := 0 to sl.count - 1 do
  begin
    CopyFile(PChar(sl.Strings[i]), (PChar('C:\Projekte\'+ (ExtractFileName(sl.Strings[i])))), True);
  end;
  finally
    sl.Free;
  end;
[Fehler] Unit1.pas(66): Anweisung erforderlich, aber Ausdruck vom Typ 'LongBool' gefunden
[Fataler Fehler] Project1.dpr(5): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden

Christian Seehase 24. Mai 2003 14:03

Moin Tino,

zwischen dem Erzeugen der StringListe und der for-Schleife fehlt noch ein try.

Da Du bei fehlendem try allerdings eine andere Fehlermeldung bekommen müsstest, wäre es ganz hilfreich, wenn Du mal den Codeabschnitt in dem der Fehler angezeigt wird, aus der Unit herauskopierst und hier einfügst, und dann mal die Zeile markierst, die angemeckert wird.
Woher soll hier jemand wissen, was in Deiner Unit Zeile 66 ist?

Daniel B 24. Mai 2003 14:13

Moin Christian,
Zitat:

Zitat von Christian Seehase
Woher soll hier jemand wissen, was in Deiner Unit Zeile 66 ist?

Es ist die hier:
Delphi-Quellcode:
CopyFile(PChar(sl.Strings[i]), (PChar('C:\Projekte\'+ (ExtractFileName(sl.Strings[i])))), True);
Das LongBool kommt von dem True im dritten Parameter von CopyFile.

Grüsse, Daniel :hi:

MathiasSimmack 24. Mai 2003 14:17

Bei mir ist kein Fehler. Deine Zeile wird anstandslos compiliert (Delphi 5 Pro).

Stanlay Hanks 24. Mai 2003 14:27

bei mir gehts nur, wie Christian gesagt hat. Man muss ein Try einfügen, dann macht das ganze keine Probleme.

City Light 24. Mai 2003 18:31

Danke euch ,das ihr mir helfen wollt ,aber mein Problem ist immer noch der selbe. *seufz*

Delphi-Quellcode:
implementation

{$R *.dfm}

procedure GetFileList(const Path: string; const Extensions: string; FileList:
  TStrings);
var
  SR: TSearchRec;
begin
  if FindFirst(Path + '*.*', faAnyFile, SR) = 0 then
  try
    repeat
      if (SR.Attr and faDirectory) > 0 then
      begin
        if SR.Name[1] <> '.' then
          GetFileList(Path + SR.Name + '\', Extensions, FileList);
      end
      else if Pos(UpperCase(ExtractFileExt(SR.Name)), Extensions) > 0 then
        FileList.Append(Path + SR.Name);
    until
      FindNext(SR) <> 0;
  finally
    FindClose(SR);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
  sl: TStringList;
begin
  sl := TStringList.Create;
  try
    GetFileList('c:\', '.DPR .PAS .DFM .DCU', sl);
    for i := 0 to sl.count - 1 do
    begin
      CopyFile(PChar(sl.Strings[i]), (PChar('C:\Projekte\'+ (ExtractFileName(sl.Strings[i])))), True); // hier kommt der Fehler (59)
    end;
  finally
    sl.Free;
  end;
end;

end.
[Fehler] Unit1.pas(59): Anweisung erforderlich, aber Ausdruck vom Typ 'LongBool' gefunden
[Fataler Fehler] Project1.dpr(5): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden

City Light 24. Mai 2003 19:30

Konnte es jetzt Compilieren *entlich* nach dem Ich in der Projetkt Option unter Compiler die Einstellung Erweiterte Syntax eingeschaltet habe.*puh* menno :roteyes:


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