Autor Beitrag
Stübi
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 331

Win XP, Win 2000, Win ME
D5 Ent, D7 Prof, D2005 PE, C#
BeitragVerfasst: Sa 04.12.04 12:46 
Hallo zusammen

Ich habe den Code
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
  while (Letter <= 'Z') do
  begin
    if (FileExists(Letter + Str)) then
    begin
      break;
    end
    else
    begin
      inc(Letter);
    end;
  end;

auf der markierten Zeile bekomme ich einen Fehler, dass in Laufwerk A:\ kein Datenträger ist, wie kann ich das verhindern?

Oder gibt es eine Möglichkeit alle Laufwerksbuchstaben mit einer Funktion in eine Stringlist zu speichern?

Gruss Stübi

_________________
Neun von zehn Stimmen in meinen Kopf sagen, dass ich nicht verrückt sei. Die zehnte summt die Tetrismelodie.
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Sa 04.12.04 13:01 
Mit der Funktion GetLocalDrives erhälst du einen DWORD-Wert, der in jedem Bit (0..25) die Einstellung speichert, ob es dieses Laufwerk gibt.

GLD AND (1 shl 2) gibt z.B. an, ob es ein Laufwerk C: gibt.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 04.12.04 14:05 
Oder man nimmt gleich Suche im MSDN GETLOGICALDRIVESTRINGS.

Oder man prüft vorher, ob das Laufwerk "bereit" ist:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
function DriveIsReady(Drive : String) : Boolean;
var
   i : Integer;
   sRec: TSearchRec;
begin
     i := FindFirst(Drive + ':\*.*', faAnyFile, sRec);
     if i = 0 then begin
        Result := True;
     end else begin
         Result := False;
     end;
     FindClose(sRec);
end;
Stübi Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 331

Win XP, Win 2000, Win ME
D5 Ent, D7 Prof, D2005 PE, C#
BeitragVerfasst: Sa 04.12.04 17:28 
Danke erstmal für die Antworten, aber mein Problem scheint damit nich gelöst.
Bei Luckie's function bekomme ich auch hier
ausblenden Delphi-Quelltext
1:
     i := FindFirst(Drive + ':\*.*', faAnyFile, sRec);					

wieder die Fehlermeldung:
Zitat:

Es befindet sich kein Datenträger im Laufwerk. Legen Sie einen Datenträger in Laufwerk A: ein.


Gruss Stübi

_________________
Neun von zehn Stimmen in meinen Kopf sagen, dass ich nicht verrückt sei. Die zehnte summt die Tetrismelodie.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 05.12.04 12:26 
Man kann irgendwie diese kritischen Fehler abschalten. Ich überlege schon seit gestern Nachmittag wie das geht. Ich habe auch schon gesucht. Nur leider bisher ohne Erfolg.
herzi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 168

WINXP pro, SUSE Linux 9.0
D7 Pers.
BeitragVerfasst: So 05.12.04 12:48 
ausblenden Delphi-Quelltext
1:
  SetErrorMode(SEM_FAILCRITICALERRORS);					

....ist das was ihr sucht
Stübi Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 331

Win XP, Win 2000, Win ME
D5 Ent, D7 Prof, D2005 PE, C#
BeitragVerfasst: So 05.12.04 15:15 
Danke vielmals das war's was ich suchte, mein Programm funktioniert jetzt.

Gruss Stübi

_________________
Neun von zehn Stimmen in meinen Kopf sagen, dass ich nicht verrückt sei. Die zehnte summt die Tetrismelodie.