Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 23:54 21.05.24 
Компютри и Интернет
   >> Visual Basic
*Кратък преглед

Тема Моля за малко помош с Do Untilнови  
Авторadgj (Нерегистриран)
Публикувано12.09.05 17:51



Здравейте,
имам проблем с долния скрипт.
Идеята му е да превърта записи и да ги подрежда в текстово поле един под друг. Това и прави , но немога да разбера защо последниа запис го дублира??
Сигурно е нещо просто , но не се сещам.
Благодаря

Do
Data1.Recordset.FindNext A
Text = Text.Text & vbNewLine & Na
Loop Until Data1.Recordset.NoMatch



Тема Re: Моля за малко помош с Do Untilнови [re: adgj]  
Автор ЩиpлицМодератор (разузнавач)
Публикувано12.09.05 20:49



А ако опиташ така:

  Data1.Recordset.FindFirst A

Do Until Data1.Recordset.NoMatch
Text = Text.Text & vbNewLine & Na
Data1.Recordset.FindNext A
Loop


... кажи после дали става.


Щирлиц

Редактирано от Щиpлиц на 12.09.05 20:51.



Тема Re: Моля за малко помош с Do Untilнови [re: Щиpлиц]  
Авторadgj (Нерегистриран)
Публикувано13.09.05 08:57



Както винаги Щирлиц е на ниво.
Всичко работи.
Сега ще се опитам да разбера защо едното не работи ,а другото - да.
Благодаря.

" Я, шифрограма - помисли си Щирлшц.
Я, Щирлиц - помисли си Basic"



Тема Re: Моля за малко помош с Do Untilнови [re: adgj]  
Автор ЩиpлицМодератор (разузнавач)
Публикувано13.09.05 11:06



Ами, какво има за разбиране... Глей ся:

Do Until ...

...
Loop

така се задава условието ПРЕДИ изпълнението на логическия цикъл


Do
..
Loop Until ...

а така - СЛЕД логическия цикъл.


Вместо Until, на същите места може да се ползва While, което не прави нищо кой-знае колко по-добре, а прави същото като Until, само че с отрицание... Т.е. реда "Do Until A = 1" ще свърши същата работа като "Do While A <> 1". ;о) Както и да е, чети надолу...

Във втория вариант (по-горе) разчиташ, че първо ще бъде изпълнен кода в цикъла, и след това ще бъде проверено по зададено условие дали да повтори цикъла. Този вариант при процедури за "колекциониране" на нещо не върши работа.

Затова преправих кода (предишния ми постинг) така: Първо се търси поне един запис, който да отговаря на зададения критерии (1-ви ред). Не изпълнява нищо с намереното, но следва логическа проверка и влизане в цикъл с намерения елемент (2-ри ред). Ако има такъв намерен де, щото това е част от условието. Ако още на първия ред се върне "нищо", т.е. няма намерен такъв елемент - тогава изпълнението на кода въобще не влиза в цикъла, защото не отговаря на зададеното условие. Но ако има намерен, тогава влиза в Do, изпълнява каквото има за изпълнение (3-ти ред), и СЛЕД това се търси следващия елемент в базата, който да отговаря на зададения критерии за търсене (4-ти ред). Следва Loop (5-ти ред), което ще върне изпълнението обратно до Do, на който ред отново се прави проверка дали условието е изпълнено. Ако от последното търсене на данна се е върнало "нищо", тогава се прекъсва цикъла. В противен случай - се "влиза" за изпълнение на кода в цикъла... Кръга се затваря, и така получаваш колекция от елементи, като няма пропуснати, няма повторени... Същия цикъл се ползва обикновено когато използваш функцията Dir() за събиране на имена на файлове от зададена директория.

Успех.


Щирлиц

Тема Евала [re: Щиpлиц]  
Автор Smile (мълчалива)
Публикувано13.09.05 15:12



на търпението ти.




*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.