Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.024 c
4-1095959084
Mazer
2004-09-23 21:04
2004.10.31
Как узнать права пользователя в Win2000/XP?


1-1097705573
saNat
2004-10-14 02:12
2004.10.31
Как убрать курсор в TMemo


11-1081704731
4kusNick
2004-04-11 21:32
2004.10.31
Как менять кодировки в RichEdit?


14-1097241932
WondeRu
2004-10-08 17:25
2004.10.31
Атас! ДНК "Бога"


3-1096464925
Хома
2004-09-29 17:35
2004.10.31
Connect to Informix




   Наверх