| Autor |
Beitrag |
Stübi
      
Beiträge: 331
Win XP, Win 2000, Win ME
D5 Ent, D7 Prof, D2005 PE, C#
|
Verfasst: Sa 04.12.04 12:46
Hallo zusammen
Ich habe den Code
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
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: 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
|
Verfasst: Sa 04.12.04 14:05
Oder man nimmt gleich GETLOGICALDRIVESTRINGS.
Oder man prüft vorher, ob das Laufwerk "bereit" ist:
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 
      
Beiträge: 331
Win XP, Win 2000, Win ME
D5 Ent, D7 Prof, D2005 PE, C#
|
Verfasst: 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
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
|
Verfasst: 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
      
Beiträge: 168
WINXP pro, SUSE Linux 9.0
D7 Pers.
|
Verfasst: So 05.12.04 12:48
Delphi-Quelltext 1:
| SetErrorMode(SEM_FAILCRITICALERRORS); |
....ist das was ihr sucht
|
|
Stübi 
      
Beiträge: 331
Win XP, Win 2000, Win ME
D5 Ent, D7 Prof, D2005 PE, C#
|
Verfasst: 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.
|
|
|