Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.31;
Скачать: CL | DM;

Вниз

Консольное приложение   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.03 c
1-1098181125
__Strelok__
2004-10-19 14:18
2004.10.31
DateTimePicker - Дата и время


14-1097200407
Думкин
2004-10-08 05:53
2004.10.31
С днем рождения! 8 октября


1-1098103855
Mishenka
2004-10-18 16:50
2004.10.31
Доступ к динамически создаваемому компоненту???


3-1096983114
Vsergey
2004-10-05 17:31
2004.10.31
Фильтр


4-1096209647
dt75
2004-09-26 18:40
2004.10.31
Помогите решить проблему работы с COM портом.