Autor Beitrag
Vamos
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 44



BeitragVerfasst: Sa 31.10.09 19:51 
Hallo ihr Lieben,

mein Programm macht irgendwie nicht das, was ich möchte. Er sollte sich aus einer Listbox einen Eintrag(auch Pfad) kopieren und die Quelldatei kopieren und in meinem Zielverzeichnis unter dem Selben Namen speichern.

Mein Ansatz:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
begin
  forcedirectories('C:\Backups\');
    for k:=0 to listbox9.items.count -1 do
    if listbox9.items[k][1]<>'''' then
    begin
    Copyfile(PChar(ListBox9.Items.Strings[k]), PChar('C:\Backups\'+ListBox9.Items.Strings[k]), true);
    end;


Aber er macht nichts... Wahrscheinlich sage ich ihm das auch :-S

Vielen Dank im Voraus.
Niko S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 566
Erhaltene Danke: 10

Win 7, Ubuntu
Lazarus, Turbo Delphi, Delphu 7 PE
BeitragVerfasst: Sa 31.10.09 20:33 
wenn die Daten in der Listbox auch einen Pfad besitzten, dann probier's doch mal mit

ausblenden Delphi-Quelltext
1:
PChar('C:\Backups\'+ExtractFileName(ListBox9.Items.Strings[k]))					


Also wenn die Daten in der Listbox so aussehen:
C:\ein Ordner\Noch einer\datei.endung
Bergmann89
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1742
Erhaltene Danke: 72

Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
BeitragVerfasst: Sa 31.10.09 21:37 
Hey,

wie sehen denn die String in der Liste aus? Und soll er nur alle Datein in den Backup-Ordner kopieren, oder soll er auch die Unterordner des Source-Folders erstellen?

MfG Bergmann.

_________________
Ich weiß nicht viel, lern aber dafür umso schneller^^
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 31.10.09 22:25 
Was mich immer stört ist, dass hier sofort gepostet wird ohne das vorher mal selbst geguckt wird, wo der Fehler liegen könnte. Suche im MSDN COPYFILE hat zum Beispiel einen Rückgabewert und wenn es fehlschlägt kann man den Wert von Suche im MSDN GETLASTERROR abfragen und meist erfährt man dann den Grund, warum eine Funktion fehlgeschlagen ist. Desweiteren wird anscheinend erst gar nicht selber debuggt, sondern es wird gehofft, dass unsere Glaskugeln dies erledigen.

Und warum prüfst du, ob das erste Zeichen eines Listbox Eintrages leer ist? Wird dadurch die Kopier-Funktion überhaupt aufgerufen?

Das alles kannst nur du uns sagen. Wir können nur raten. Also bitte erstmal Hausaufgaben (Debuggen, Rückgabewerte auswerten, ...) machen und dann posten.

Hinzukommen ungenügende Informationen. Wie hier auch schon gefragt wurde: Was steht in der Listbox drin? Nur der Dateiname oder auch ein Pfad.
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: So 01.11.09 14:59 
Handelt es sich bei '''' nicht um ein ' ?
Ergibt für mich an dieser Stelle recht wenig Sinn. Gemeint wahr vermutlich:
[Glaskugel]
ausblenden Delphi-Quelltext
1:
listbox9.items[k]<>''					

[/Glaskugel]
Bergmann89
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1742
Erhaltene Danke: 72

Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
BeitragVerfasst: Mo 02.11.09 12:55 
Hey,

Vlt steht das ja in seiner ListBox, weis ja niemand wie die String da drin aussehen ;)

@Luckie: ich war aber am anfang auch nich anders, hab dann aber mit der Zeit gelernt was man zuerst machen sollte, bzw. welche sachen für eine ordentliche FehlerDiagnose erforderlich sind :P

@Vamos: also wie schon gesagt FehlerCode mit GetLastError Prüfen. Mit SystemErrorMessage bekommt man noch nen schönen Text dazu:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
  for i := 0 to ListBox1.Items.Count-1 do
    begin
      CopyFile(PChar(ListBox1.Items[i]),
               PChar(ExtractFilePath(Application.ExeName)+ExtractFileName(PChar(ListBox1.Items[i]))),
               false);
      Memo1.Lines.Add('ListBoxItem: '+IntToStr(i)+' - Error: '+SysErrorMessage(GetLastError));
    end;

un das kommt dabei raus:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
LOG:
ListBoxItem: 0
   ItemText: D:\CopyTest\test\Kopie (2) von TEST.txt
   Error: Der Vorgang wurde erfolgreich beendet
ListBoxItem: 1
   ItemText: D:\CopyTest\test\Kopie (3) von TEST.txt
   Error: Der Vorgang wurde erfolgreich beendet
ListBoxItem: 2
   ItemText: D:\CopyTest\test\Kopie (4) von TEST.txt
   Error: Der Vorgang wurde erfolgreich beendet
ListBoxItem: 3
   ItemText: D:\CopyTest\test\Kopie von TEST.txt
   Error: Der Vorgang wurde erfolgreich beendet
ListBoxItem: 4
   ItemText: D:\CopyTest\test\TEST.txt
   Error: Der Vorgang wurde erfolgreich beendet


Und wenn du das so gemacht hast,dann ist es vlt gar nicht mehr nötig, das wir dir helfen den Fehler zu finden, weil du den Fehler schon selbst erkennen kannst. Wir könn dir dann helfen den Fehler zu beseitigen...

MfG Bergmann

_________________
Ich weiß nicht viel, lern aber dafür umso schneller^^


Zuletzt bearbeitet von Bergmann89 am Mo 02.11.09 13:26, insgesamt 1-mal bearbeitet