Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование в среде .NET (ASP.NET,ADO.NET) на C#/VB.NET

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162

Открыть новую тему     Написать ответ в эту тему

Lazy KoT



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LuckyStrike

Всего записей: 204 | Зарегистр. 10-09-2004 | Отправлено: 20:39 19-02-2009
zediks

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте, помогите пожалуйста решить следующую задачу:
 
Есть exe-файл, который при запуске делает запись в БД.
Для этого используется объект ADODB из библиотеки Interop.ADODB.dll,  
которая должна лежать в той же папке что и EXE-файл.
 
Как "присоединить" этот dll ? Как явно указать путь к нему в коде программы?
Если делать в Visual Studio, создать проект то проблем нету.
 
Но мне нужно откомпилировать файл с кодом через командную строку.
 
csc /reference:Interop.ADODB.dll 2.cs  пишет:
"Не удалось найти имя типа или пространства имён 'ADODB' (пропущена директива using или ссылка на сборку)"  
 
хотя код содержит строку: using ADODB
 
Конечная цель - сделать так чтобы exe - файл тянул все ресурсы из dll находящихся с ним в одной папке.
 

Всего записей: 8 | Зарегистр. 09-08-2007 | Отправлено: 10:14 20-02-2009
Lazy KoT



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zediks

Цитата:
 
The compiler searches for assembly references that are not fully qualified in the following order:  
1. Current working directory. This is the directory from which the compiler is invoked.
2. The common language runtime system directory.
3. Directories specified by /lib.
4. Directories specified by the LIB environment variable.
 
Use /reference to specify an assembly reference.
/lib is additive; specifying it more than once appends to any prior values.
 

 
Попробуй указать полный путь к dll или укажи каталог в которой она лежит через /lib

Всего записей: 204 | Зарегистр. 10-09-2004 | Отправлено: 18:56 20-02-2009
V0lt



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как у NumericUpDown убрать стрелочки (что бы выглядел как TextBox, но остальные фичи остались)?

Всего записей: 10501 | Зарегистр. 05-02-2003 | Отправлено: 08:49 21-02-2009
Lazy KoT



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
V0lt

Код:
numericUpDown1.Controls[0].Visible = false;

Всего записей: 204 | Зарегистр. 10-09-2004 | Отправлено: 12:34 21-02-2009 | Исправлено: Lazy KoT, 14:21 21-02-2009
V0lt



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Lazy KoT
спасибо.
Работает, но коряво. На месте стрелок остается неиспользуемое поле, в котором находится "скриншотик" экрана.

Всего записей: 10501 | Зарегистр. 05-02-2003 | Отправлено: 13:51 21-02-2009
Lazy KoT



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
V0lt
Да, дырка остается, но "скриншотика" у меня нет, такого же цвета как и поле ввода. Есть "скриншотик". Видел люди колдовали с размером стрелок (System.Windows.Forms.UpDownBase.UpDownButtons)

Код:
Controls[0].Size

и самого текстового поля (System.Windows.Forms.UpDownBase.UpDownEdit)

Код:
Controls[1].Size

Отписывались, что на VB изменение работает, на C# - увы. Сам особо не ковырялся.

Всего записей: 204 | Зарегистр. 10-09-2004 | Отправлено: 14:20 21-02-2009 | Исправлено: Lazy KoT, 14:35 21-02-2009
mihas83



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго времени суток!
 
Пишу на пару с сокурсником образовательную игру, в рамках учебного курса по С#.
Тема игры: изучение географии Европы. Идея игры заключается в том, чтобы при нажатии ''на страну'', рандомально появлялись четыре варианта ответов стран и среди них всегда была один правильный ответ, каждый раз на новом месте.  
 
Проблема заключается в том, чтобы сделать помимо трёх неправильных вариантов один правильный, и чтобы места их постоянно менялись. Собеседование с преподователем завело в ещё большую дыру, вместо того, чтобы облегчить работу, он придумал нам новые проблемы. Предложил сделать массив внутри массива, чтобы случайные страны выдавались посредством loopa. А[B[х]].  
 
Насколько мы его поняли, он хочет чтобы каждой стране на карте принадлежала определенная клетка в первом массиве, с 4 наименованиями стран, разделенных запятой и после этого числом означающим правильный ответ. После чего, пройдясь сплитом по клетке массива разделить все страны и разбросать их рандомом с помощью второго массива.  
 
Эта схема показалась замудренной и слишком сложной,  
По-моему наш преподаватель не ощущает уровня знаний своих студентов. Кроме того, получается при нажатии на определенную страну, всегда будут те же самые варианты ответов.  
Единственное что будет меняться - их места, а это не совсем рандом, который мы хотели.
 
Поэтому обращаемся к вам за помощью и советом, как бы всё это лучше организовать, желательно с примерами в коде, так как уровень у нас начинающий и хочется научиться писать код по грамотному, основываясь на толковых примерах.
 
Чтобы лучше понять о чём идёт речь можете взлянуть на симуляцию будущей игры созданной в формате ppt.

----------
Мы знаем: время растяжимо. Оно зависит от того,
Какого рода содержимым Вы заполняете его. (C. Маршак)

Всего записей: 7832 | Зарегистр. 15-07-2003 | Отправлено: 19:13 21-02-2009 | Исправлено: mihas83, 19:49 21-02-2009
eLLoco



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Предложения схема прежде всего не гибкая - 4 страны фиксированы для каждой клетки.
 
А если самый простой вариант попробовать - у вас есть список (массив) стран в виде структуры с полями "Название страны", "Местоположение на карте". При выборе клетки мы точно знаем, что там за страна - выбираем ее. Остальные три - просто рандомно из этого самого массива стран. Пойдет?

Всего записей: 217 | Зарегистр. 03-08-2007 | Отправлено: 11:39 22-02-2009
Lazy KoT



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Остальные три - просто рандомно из этого самого массива стран

А потом перемешиваем и выводим для выбора. (:

Всего записей: 204 | Зарегистр. 10-09-2004 | Отправлено: 15:13 22-02-2009
mihas83



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
eLLoco,
 
Tо есть, ты предлагаешь массив структур

Код:
struct EuropaCountry
{
    int m_CountryID;
    String^ m_CountryName;
}

с привязкой правильных ответов.
И общий массив всех имен

Код:
static string[] m_countryNameStringArray =
{
"France",  
"England",
"Italy",
"Ukraine",
"Russia",
"....."
};

Как тогда тебе видятся толковые циклы рандомных проходов со смешиваниев правильных и неправильных ответов (чтобы правильные ответы были в разных местах)?    
 
 
 
 
Добавлено:
Lazy KoT,  

Цитата:
А потом перемешиваем и выводим для выбора. (:
 
Вот-вот... И я о том же...
Как будем бегать по циклам (рандомно) и перемешивать?

Всего записей: 7832 | Зарегистр. 15-07-2003 | Отправлено: 15:18 22-02-2009
Lazy KoT



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mihas83

Код:
EuropaCountry[] europeCountryArray = {...}
IMHO вот это предлагал eLLoco.  
Из этого массива Random-ом выбираешь в другой массив необходимое количество стран, потом пермешиваешь этот новый массив и выдаешь для выбора.
Что-то типа вот этого (код не тестил):

Код:
EuropaCountry[] choiceCountryArray = new EuropaCountry[fakeCountryNumber + 1];
int trueCountryIndex = 0;
choiceCountryArray[trueCountryIndex] = trueCountry;
 
Random rnd = new Random();
 
for (int i = 1; i < fakeCountryNumber + 1; i++)
{
    choiceCountryArray[i] = europeCountryArray[GetRandomIndex(rnd, trueCountryIndex)];
}
 
int GetRandomIndex(Random rnd, int excludeIndex)
{
    int index;
    do
    {
        index = rnd.Next(0, europeCountryArray.Length - 1);
    } while (index == excludeIndex);
 
    return index;
}

 
Ну и перемешать потом fakeCountryArray.

Всего записей: 204 | Зарегистр. 10-09-2004 | Отправлено: 17:01 23-02-2009 | Исправлено: Lazy KoT, 17:08 23-02-2009
eLLoco



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mihas83

Цитата:
Код:
EuropaCountry[] europeCountryArray = {...}
IMHO вот это предлагал eLLoco.  
Из этого массива Random-ом выбираешь в другой массив необходимое количество стран, потом пермешиваешь этот новый массив и выдаешь для выбора.
Что-то типа вот этого (код не тестил):  

Да, Lazy KoT тему пишет А отдельный массив имен точно не нужен.

Всего записей: 217 | Зарегистр. 03-08-2007 | Отправлено: 17:07 23-02-2009
mihas83



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Lazy KoT 17:01 23-02-2009
Цитата:
Ну и перемешать потом fakeCountryArray.

А чем не годится для fakeCountryArray мой m_countryNameStringArray ?
Как лучше его перемешать ?

Всего записей: 7832 | Зарегистр. 15-07-2003 | Отправлено: 22:47 23-02-2009
Lazy KoT



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mihas83

Цитата:
Как лучше его перемешать ?

Линк давал в первом своем ответе.

Всего записей: 204 | Зарегистр. 10-09-2004 | Отправлено: 13:47 24-02-2009
mihas83



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребят, мы пошли немножко другим путём и всё понеслось.
Но застопорились на двух моментах:
1) Тормозим и не можем понять, как ещё разочек рандом сделать уже по четырём вынесенным вариантам ответа (buttons[]).
2) При нажатие на неправильно выбранную страну, её территория (неправильной страны) загорается серым цветом (налепленный сверху PNG) и весит над страной, пока пользователь не выберет другой вариант. Пока не смогли догадаться, как бы привязать неправильные варианты к своим странам. Так как их индекс теряется после наших рандомов.  
 
Окиньте пожалуйста взглядом код, скажите как бы это лучше реализовать.
 

Код:
 
namespace geogra
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        string[] country = new string[] {"Poland", "Spain", "Germany", "Turkey", "Russia", "Romania", "Ukraine","France" };
        int[] numbers = new int[] {0,0,0,0,0,0,0,0};
        string[] buttons = new string[4];
       // string[] buttonsEnd = new string[4];
        string correct;
        protected void Page_Load(object sender, EventArgs e)
        {
            TextBox1.Text = "Click on any country on the map";
            Image2.Visible= false;
            Panel1.Visible = false;
            Button5.Visible = false;
        }
 
        protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
        {
            correct = "Ukraine";
            Random randomCountry = new Random();
            for (int i = 0; i < 3;)
            {
                int a = randomCountry.Next(0, 8);
                if (numbers[a] == 0)
                {
                        buttons[i] = Convert.ToString(country[a]);
                        numbers[a] = 1;
                        if (country[a] == correct)
                        {
                            a = randomCountry.Next(0, 8);
                            i--;
                        }
                        i++;
                }
                else
                {
                    a = randomCountry.Next(0, 8);
                }
                 
                TextBox1.Text = "Which country is it?";
                Panel1.Visible = true;
 
                buttons[3] = correct;
                Button1.Text = buttons[0];
                Button2.Text = buttons[1];
                Button3.Text = buttons[2];
                Button4.Text = buttons[3];
            }
        }
 

Всего записей: 7832 | Зарегистр. 15-07-2003 | Отправлено: 23:26 24-02-2009
Lazy KoT



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mihas83
Мой слабенький мозг отказыется обрабатывать столь изощренные методы программирования. ):

Цитата:
Так как их индекс теряется после наших рандомов.
Вот для этого eLLoco и предлагал массив структур, а не массив строк.
 
По поводу перемешивания вот фрагмент кода, на который я давал линк выше, что тут может быть непонятного:
Код:
/// <summary>
/// Slow but reliable method for randomizing string array
/// </summary>
static class RandomStringArrayTool
{
    /// <summary>
    /// Stores the current random number
    /// </summary>
    static Random _random = new Random();
 
    /// <summary>
    /// Return randomized version of the string array
    /// </summary>
    public static string[] RandomizeStrings(string[] arr)
    {
        List<KeyValuePair<int, string>> list = new List<KeyValuePair<int, string>>();
        // Add all strings from array
        // Add new random int each time
        foreach (string s in arr)
        {
            list.Add(new KeyValuePair<int, string>(_random.Next(), s));
        }
        // Sort the list by the random number
        var sorted = from item in list
                     orderby item.Key
                     select item;
        // Allocate new string array
        string[] result = new string[arr.Length];
        // Copy values to array
        int index = 0;
        foreach (KeyValuePair<int, string> pair in sorted)
        {
            result[index] = pair.Value;
            index++;
        }
        // Return copied array
        return result;
    }
}
Можно под массив структур переделать...
 
И можешь глянуть в Wiki.

Всего записей: 204 | Зарегистр. 10-09-2004 | Отправлено: 12:18 25-02-2009 | Исправлено: Lazy KoT, 12:55 25-02-2009
LuckyStrike



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Елси не сложно еще две)))  
1)Дано число a (1 < a &#8804; 1,5). Из чисел 1,  1+1\2,  1+1/3,… вывести те, которые не меньше a.  
 
2)Найти произведение всех целых чисел от a до b  (значения a и b вводятся самим)

Всего записей: 78 | Зарегистр. 10-12-2008 | Отправлено: 14:04 25-02-2009
Lihonosov

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LuckyStrike
Я думаю дублирование вопросов на каждой странице, мало чем поможет

Всего записей: 537 | Зарегистр. 05-07-2007 | Отправлено: 16:00 25-02-2009
Lazy KoT



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ну и я продублируюсь:
LuckyStrike

Всего записей: 204 | Зарегистр. 10-09-2004 | Отправлено: 16:59 25-02-2009
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование в среде .NET (ASP.NET,ADO.NET) на C#/VB.NET


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru