Форум: "Основная";
Текущий архив: 2004.10.31;
Скачать: [xml.tar.bz2];
ВнизКонсольное приложение Найти похожие ветки
← →
dms_main © (2004-10-18 00:15) [0]Уважаемые мастера! Подскажите как самому обработать исключения и ошибки в консольном приложении?
← →
Closer (2004-10-18 00:26) [1]Т.е. не используя блоки try-except и try-finally?
← →
jack128 © (2004-10-18 00:29) [2]dms_main © (18.10.04 0:15)
Подскажите как самому обработать исключения и ошибки в консольном приложении?
так же как и в любом другом приложении на Delphi. в блоке try except end
← →
dms_main © (2004-10-18 02:27) [3]в ХР всеравно выдает ошибку!:-(
← →
GanibalLector © (2004-10-18 02:31) [4]Что за ошибка и где,собственно,код ???
← →
dms_main © (2004-10-18 02:38) [5]
.....
const
letter : array [0..25] of string = ("q","w","e","r","t","y","u","i","o","p","a","s","d","f","g","h","j","k","l","z","x","c","v","b","n","m");
.....
var
drives : array of string;
i,f,d:integer;
.....
procedure getdrives;
begin
d:=0;
for i:=0 to 25 do
begin
f:=GetDriveType(pchar(letter[i]+":\"));
if (f=3) or (f=4) then
begin
d:=length(drives)+1;
setlength(drives,d);
drives[d-1]:=pchar(letter[i]);
end;
end;
end;
← →
dms_main © (2004-10-18 02:41) [6]ошибка в том что в Letter[i] подставляется null:-(
Самое интересное что это происходит где-то в 30% использования этой процедуры.
P.S. изначально length(drives) = 0;
← →
Rouse_ © (2004-10-18 10:46) [7]Проверил этот код, все нормально...
program Project1;
{$APPTYPE CONSOLE}
uses
Windows;
const
letter : array [0..25] of string =
("q","w","e","r","t","y","u","i","o","p","a","s","d","f","g","h","j","k","l","z","x","c","v","b","n","m");
var
drives : array of String;
i:integer;
procedure getdrives;
var
I, D, F: Integer;
begin
d:=0;
for i:=0 to 25 do
begin
f := GetDriveType(pchar(letter[i]+":\"));
if (f=3) or (f=4) then
begin
d:=length(drives)+1;
setlength(drives,d);
drives[d-1] := pchar(letter[i]);
end;
end;
end;
begin
getdrives;
for I := 0 to Length(drives) do Write(drives[I]);
Sleep(4000);
end.
← →
begin...end © (2004-10-18 11:06) [8]Я правда не понял, почему drives : array of String, когда каждый элемент содержит только одну букву; и зачем pchar(letter[i]).
← →
begin...end © (2004-10-18 11:32) [9]Т.е. я думаю, что вот так лучше сделать, и попроще будет:
var
Drives: array of Char;
procedure GetDrives;
var
Ch: Char;
begin
for Ch := "A" to "Z" do
if GetDriveType(PChar(Ch + ":\")) in [3, 4] then
begin
SetLength(Drives, Length(Drives) + 1);
Drives[High(Drives)] := Ch;
end;
end.
← →
dms_main © (2004-10-18 13:59) [10]Спасибо - вроде работает , видимо ошибка была где-то в логике :-)
← →
dms_main © (2004-10-18 14:01) [11]и все таки - в application есть onexception, а есть ли нечто подобное в Console application ?
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.10.31;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.053 c