Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.11.17;
Скачать: [xml.tar.bz2];

Вниз

Проблема с циклoм For To do.   Найти похожие ветки 

 
slivka   (2003-11-06 14:09) [0]

Этот код предназдначен для поиска установленных в интернет адаптеров.
Но определяет он только последний устновленный.
Часть кода которая находится после этой строки выполняется только один раз

if (m = "ethernet")then else goto www;

а все переменные хранят значения относящиеся к последнему найденуму адаптеру.
Наверное я что-то с циклами не так сделал ?

procedure TForm1.Button4Click(Sender: TObject);
label www, qqq;

var
reg: TRegistry;
a: integer;
u: string;
m: string;
begin

for a := 0 to 11 do
begin
if ( a = 9 ) or ( a < 9 ) then else u := "00"+IntToStr(a); goto qqq;
begin
u := "000"+IntToStr(a);
end;
qqq:;
reg:=TRegistry.Create;
reg.RootKey:=HKEY_LOCAL_MACHINE;
reg.OpenKey("SYSTEM\ControlSet001\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\"+u+"\Ndi\Interfaces",false);
m := reg.ReadString("LowerRange");
reg.CloseKey;
if (m = "ethernet")then else goto www;
begin
reg.OpenKey("SYSTEM\ControlSet001\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\"+u,false);
listbox1.Items.add(reg.ReadString("DriverDesc"));
reg.CloseKey;
end;
www:;
end;
reg.free;
end;

end.


 
keymaster   (2003-11-06 14:18) [1]

Моя имха - ошибка тут:

if (m = "ethernet")then else goto www;
т.е. если m = "ethernet" то ничего не происходит,
а иначе топаем к www.

если не ошибаюсь, то надо так:

if (m = "ethernet")then
begin
reg. OpenKey("SYSTEM\ControlSet001\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\"+u,false);
listbox1.Items.add(reg.ReadString("DriverDesc"));
reg.CloseKey;
end;
reg.free;

а www как бы и не нужен...
end;


 
dead1   (2003-11-06 14:26) [2]

if a > 9 then
begin
u := "000"+IntToStr(a);
end else
u := "00"+IntToStr(a);

Тогда вообще без лэйбелов.


 
slivka   (2003-11-06 14:31) [3]

Непомогло, Все равно определяется только последний.
а вот если убрать отсюда GOTO qqq;

for a := 0 to 11 do
begin
if ( a = 9 ) or ( a < 9 ) then else u := "00"+IntToStr(a); goto qqq;
begin
u := "000"+IntToStr(a);
end;
qqq:;

То определяется только первый установленный интернет адаптер.


 
pasha_golub   (2003-11-06 15:28) [4]

Я конечно выскажу свое ИМХО, но ребяты Метки только усложняют отладку кода, перепиши без меток


 
slivka   (2003-11-06 15:35) [5]

Окей спасибо, все переделал и заработало.


 
zapped   (2003-11-06 15:38) [6]

выскажу-ка и я свою имху:
это
if ( a = 9 ) or ( a < 9 ) then
равно этому
if a <= 9 then, что проще для понимания, а значит и эффективней для отладки...
и выходить из цикла по метке - дурной тон...
тем более, что это легко сделать иначе
присоединюсь к pasha_golub © (06.11.03 15:28) [4]
переделай без меток, забудь про них...
где-то читал: " если в коде ипользуются метки, значит, алгоритм построен неэффективно"...
и почитайте про процедуры continue и break


 
zapped   (2003-11-06 15:38) [7]

опоздал :))



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.11.17;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.009 c
14-56888
Balepa
2003-10-26 00:50
2003.11.17
Прога зацик-тся


14-56845
Murad
2003-10-24 18:00
2003.11.17
Люди, кто-то на MMP рассказывал про смешные результаты поиска...


3-56477
LordBTR
2003-10-27 16:33
2003.11.17
Динамическое получение суммы по полю.


7-56943
Любитель
2003-09-09 09:01
2003.11.17
Господа как программно изменить время двойного клика


1-56667
JohnJ
2003-11-07 20:17
2003.11.17
Печать RichEdit





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский