Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Вопрос по Visual Basic

Автор: UndertakeR13
Дата сообщения: 03.12.2002 19:13
Существует ли в VB оператор типа break или continue, позволяющий перейти к следующей итерации цикла?
Автор: dneprcomp
Дата сообщения: 04.12.2002 00:49
Нет, насколько мне известно.
Можно только безусловно прервать цикл командой
exit [for;do] или присвоить новое/нужное/ значение
переменной цикла
Автор: Draper
Дата сообщения: 04.12.2002 02:31
Коль такую тему создал, тогда я тоже спрошу!

Есть база данных (сделал на Access), есть оболочка (сделанная на VB 6.0), суть очень проста: оболочка выводит всего навсего список из базы с несколькими колонками (скажем: 1,2,3 и 4) и две кнопки (Delete & Refresh). Мне надо чтобы оболочка выдавала список отсортированный скажем по 1 колонке в порядке (A-Z), по 2-ой (Z-A) и по 3-ей (A-Z), 4-ая остается как и была! Я думаю идея понятна, если можно опишите подробнее куда и чего, потому что я не очень еще понимаю VB а все что сделал, получилось благодаря визардам и кнопкам Propertie

Заранее благодарен!
Автор: merlkerry
Дата сообщения: 04.12.2002 08:19
Draper


Цитата:
список отсортированный
-
Выдаст БД - рисуй SQL запрос в конструкторе Access

ну а дальше, просто поменай DataSource c имеющейся таблицы на полученный запрос
Автор: Draper
Дата сообщения: 04.12.2002 17:22
merlkerry

Дак в том то и дело что я не знаю как его нарисовать....а что в VB нелзя это сделать?
Автор: merlkerry
Дата сообщения: 04.12.2002 19:30
Draper - а что знать - там визуальный конструктор (в Access)-
выбери поля - укажи действие Сортировка на нужные поля -
получи рузультат
Автор: dneprcomp
Дата сообщения: 04.12.2002 22:56
Draper
Не совсем понятно что ты хочешь сделать.
В чем показываешь эти колонки? Если это один контрол(ОСХ),
то при сорте в одной колонке поменяется ордер в каждой.
А если это независимые контролы, то сортируй себе в каждом
отдельно. Например лист поддерживает проперти сорт и отсортирует
автоматически по окончании загрузки.
Не забудь: если данные получены одним рекордсетом
раздельный сортинг оборвет все смысловые связки рекорда
PS. Да, еще можно в селект стайтменте указать параметр сортинга по каждому
полю
Автор: SergejKa
Дата сообщения: 05.12.2002 03:26
dneprcomp

Цитата:
указать параметр сортинга по каждому полю
Именно про это он и говорит
Автор: dneprcomp
Дата сообщения: 05.12.2002 23:11
Ну если это то что надо и сам не разобрался еще,
то напиши свой селект. Посмотрим, подправим
И получится все в ВБ, как и хотел
Автор: Draper
Дата сообщения: 06.12.2002 23:00
в VB это называется Data Grid. Там у меня получается несколько колонок. Скажем 7! Мне надо отсортировать скажем 1-ю в порядке возрастания, 2-ю в порядке убывания и 3-ю в порядке возрастания опять. Чтоб он сначала сортировал 1-ю колноку, затем отсортированное сортировал по 2-ой и все это дело еще раз сортировал по 3-ей!

А вот более конкретно:



Мне надо чтоб сначала он сортировал по колонке "Fast?" в порядке возрастания ( те которые "Yes" должны быть наверху) и затем по колонке "Date" ( то что новее должно быть внизу). Значит главное преимущество имеет колонка "Fast?" не зависимо от других то что помечено "Yes" идет на самый вверх! В колонке "Type" есть значения: U, T, S соответственно U должно быть на самом верху, а S в самом низу.

Вот так вот!

P.S. еще вопросы! Как мне в колонке "Fast?" сделать вместо "Yes" или "No" Check Box'ы? Возможно ли такое что когда я ввожу в колонку "Item ID" ID продукта, то эта прога сама находит описание и автоматом вставляет его в колонку "Derscription". База с Item ID и Descriptions имеется
Автор: dneprcomp
Дата сообщения: 10.12.2002 20:12
Интересно, как ты это себе представляешь?
Одна строка - один рекорд. Как же можно отсортировать
часть строки? Если делаешь сортинг по колонке "Fast?",
то меняется и расположение и в других колонках.
Один контрол может иметь только один сорт в одну операцию.
Представь себе, что рекорд это несколько человек, крепко держащих друг друга за руку. Если выводишь одного вперед, то и остальные дружно делают шаг вперед.
Автор: SergejKa
Дата сообщения: 11.12.2002 03:10

Цитата:
Одна строка - один рекорд. Как же можно отсортировать часть строки?

Цитата:
Представь себе, что рекорд это несколько человек, крепко держащих друг друга за руку.

dneprcomp ты руки-то этим человекам поотрубай Сделай ордер по дате where fast="NO", а потом вторым безруким (у которых фаст=ЙЕС ) ордер BY DATE. Получается два рекордсета, отсортированые как надо.
А если написать селект олл, ордер бай DATE, FAST всё должно получиться. Многочисленная сортировка так работает. Помнишь я тебе говорил про указатель сортировки в шапке грида? Так вот я ордерую по дате, потом закрепляю эту сортировку и сортирую по фасту (применительно к нонешнему варианту).


Добавлено

Цитата:
P.S. еще вопросы! Как мне в колонке "Fast?" сделать вместо "Yes" или "No" Check Box'ы? Возможно ли такое что когда я ввожу в колонку "Item ID" ID продукта, то эта прога сама находит описание и автоматом вставляет его в колонку "Derscription". База с Item ID и Descriptions имеется


ЗЫЖ
1 чекбоксы в колонке может сделать только специальный грид (пример - грид Ёксела).
2 Вводишь в колонку ID и не паришься, а в SELECT добавляешь ещё и поле из дескрипшена, WHERE Item_ID (из таблицы с описаниями) равен твоему, введённому в таблицу товара ID. Просто формируешь составной запрос из нескольких таблиц.
Автор: dneprcomp
Дата сообщения: 11.12.2002 23:13
SergejKa
Чего-то я во всей этой истории не понимаю

Цитата:
Получается два рекордсета, отсортированые как надо

А как 2 рекордсета запихать в один грид? Это что, такое специальное свойство у этого грида?

Цитата:
Так вот я ордерую по дате, потом закрепляю эту сортировку и сортирую по фасту (применительно к нонешнему варианту).

Опять же, что значит закрепить? В гриде? Еще одно спец. свойство?
PS. А прислал бы примерчик с маленькой-маленькой базкой и
этим самым гридом(и сам ОСХ, что бы установить)
PSS. "Кто бабе руки отрубил?"(какое-то революционное кино)
Автор: 1lex1
Дата сообщения: 03.04.2015 08:09
Как распределены биты в переменной типа single? Почему у этой переменной на 7 порядков больше диапазон значений чем у float в С?
Например в float в С находится легко: 7 бит степени и знак двойки и 23 значащих бита и знак.
Автор: KDPoid
Дата сообщения: 03.04.2015 09:22
MSDN, вроде как, говорит, что Single в VB - это 32-х битное вещественное одинарной точности со знаком в соответствии с IEEE754
Так что, бит знака, 8 бит экспоненты и 23 бита мантиссы.
"По-моему так..."
Автор: 1lex1
Дата сообщения: 08.04.2015 09:04
KDPoid
Цитата:
в соответствии с IEEE754
Но это противоречит
msdn.microsoft.___com/ru-ru/library/xay7978z.aspx
Цитата:
которое может изменяться в диапазоне от -3,4028235E+38 до -1,401298E-45
Автор: KDPoid
Дата сообщения: 08.04.2015 11:20
Похоже, что Вы не так прочитали текст по ссылке.

Цитата:
от -3,4028235E+38 до -1,401298E-45 для отрицательных значений и от 1,401298E-45 до 3,4028235E+38 для положительных.

Т.е. от -3,4028235E+38 до 3,4028235E+38
Что полностью соответствует IEEE754
Но.
Вокруг нуля есть яма. Числа, которые настолько малы, что не могут быть представлены в денормализованном виде и все приравниваются к специальному значению "ноль".
Это, как раз, числа, которые по модулю меньше чем ~1.4e-45
Что, опять же, в соответствии с IEEE754

Автор: 1lex1
Дата сообщения: 08.04.2015 17:59
KDPoid
Нет, я просто сократил цитату. Мне не понятно: как при минимальной степени двойки "-127" может быть абсолютное значение числа меньше чем 2^(-127)=~5,88*10^(-39)?
Автор: LadyOfWood
Дата сообщения: 08.04.2015 18:05

Цитата:
Мне не понятно: как при минимальной степени двойки

Есть еще и денормализованные числа.
Автор: 1lex1
Дата сообщения: 08.04.2015 18:38
LadyOfWood, а разве максимальное значение степени двойки у денормализованного числа 128, а не 127 как у float в C?
Автор: LadyOfWood
Дата сообщения: 08.04.2015 19:15
Посмотрите на описание стандарта, например: http://softelectro.ru/ieee754.html тут прексрасно показано откуда все берется у денормализованных чисел.
Автор: 1lex1
Дата сообщения: 08.04.2015 19:48
И где там написано что у него может быть степень двойки "128"?
Автор: LadyOfWood
Дата сообщения: 08.04.2015 19:56
1lex1
2^-126 * 2^-23= 2^-149 =~ 1,40129846E-45
Автор: 1lex1
Дата сообщения: 08.04.2015 20:02
LadyOfWood спасибо, но мой последний вопрос был
Цитата:
а разве максимальное значение степени двойки у денормализованного числа 128
Например для нормализованного явно указано 127 и это соответствует указанному диапазону значений float в msdn, а для single в VB этого не написано.

Добавлено:

Цитата:
максимальное число    ±2127*(2-2-23) = ± 3,40282347*e+38
Автор: KDPoid
Дата сообщения: 08.04.2015 20:31
1lex1,
Итак, мантисса. 23 бита.
Обычно, в нормализованных числах, мы считаем, что это дробная часть, которую мы прибавляем к 1.
Т.е. единственный младший бит в мантиссе - это десятичное число 1.0000001
Но тогда яма вокруг нуля уж больно большая.
Тогда придумали денормализованные числа.
Чтобы отличать их от нормализованных - пожертвовали одним значением экспоненты.
Т.е. нормализованные стали до 2^(-126)=~1.17e-38
А у денормализованных (или как их называют буржуи - субнормальных
мантисса прибавляется не к 1, а к 0.
Т.е. единственный младший бит денормализованного числа - это десятичное число 0.0000001.
Что даёт нам сдвиг ещё на семь десятичных разрядов.
Так у денормализованных е-38 превращается в е-45.

Теперь я правильно понял, что вам было не понятно ?

Поиграться с представлением вещественных чисел можно, например, здесь:
_http://www.h-schmidt.net/FloatConverter/IEEE754.html

Автор: 1lex1
Дата сообщения: 08.04.2015 21:12

Цитата:
Теперь я правильно понял, что вам было не понятно ?
Спасибо, но то, что у "single" в VB нет старшей единицы понял сразу после первого ответа LadyOfWood. И у меня сразу возник вопрос: какое максимальное значение степени двойки у денормализованного числа 127 или 128? Например для нормализованного однозначно написано 127 по ссылке выше
Цитата:
максимальное число    ±2127*(2-2-23) = ± 3,40282347*e+38
Автор: KDPoid
Дата сообщения: 09.04.2015 05:50
1lex1,
так, вы меня путаете.
Денормализованные - это очень близкие к 0.
Под них выделено единственное значение экспоненты. -127
Что значит "максимальное значение степени двойки у денормализованного числа" ?
Автор: 1lex1
Дата сообщения: 09.04.2015 08:12

Цитата:
Под них выделено единственное значение экспоненты. -127

Вот оно, большое спасибо, разобрался. Только там степень двойки -126. А я думал нормализованные и денормализованные существут независимо и каждый из них имеет полный диапазон степеней. Также по ссылке выше был пример Возьмем, к примеру, десятичное число 155,625. Представим это число в денормализованном экспоненциальном виде. Который вводил в заблуждение
Автор: KDPoid
Дата сообщения: 09.04.2015 09:05
А вот теперь у меня чувство, что я не разобрался.

Цитата:

Цитата:
Под них выделено единственное значение экспоненты. -127

Вот оно, большое спасибо, разобрался. Только там степень двойки -126

Страницы: 1

Предыдущая тема: Графика в C++ Builder 6


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.