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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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

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

AngeL



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, пожалуйста, что можно использовать для .NET для создания соединения с интернетом без участия пользователя. Спасибо.

Всего записей: 69 | Зарегистр. 19-05-2004 | Отправлено: 07:07 27-05-2010
svs123456789

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
есть  WebBrowser control - как в нем подсветить все вхождения искомого слова?
(имитировать Ctrl-F) ?

Всего записей: 2932 | Зарегистр. 10-04-2003 | Отправлено: 11:48 31-05-2010 | Исправлено: svs123456789, 11:56 31-05-2010
Lihonosov

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

Код:
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
            IHTMLDocument2 doc2 = (IHTMLDocument2)webBrowser1.Document.DomDocument;
            Regex re = new Regex(str, RegexOptions.IgnoreCase);
            MatchCollection mc = re.Matches(doc2.body.outerHTML); ;
            int iCountMatchs  = mc.Count;
            if(iCountMatchs>0)
            {
                StringBuilder html = new StringBuilder(doc2.body.outerHTML);
                String substitution = "<span style='background-color: rgb(255, 255, 0);'>" + str + "</span>";
                html.Replace(str, substitution);
                doc2.body.innerHTML = html.ToString();
            }
}

 
str - искомое слово

Всего записей: 537 | Зарегистр. 05-07-2007 | Отправлено: 21:33 31-05-2010 | Исправлено: Lihonosov, 21:34 31-05-2010
May_Johnson



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AngeL
Используй System.Diagnostics.Process.Start()
 и комманду rasdial :
       
        C:\Windows\system32\rasdial.EXE entryname [username [password|*]] [/DOMAIN:domain]
               [/PHONE:phonenumber] [/CALLBACK:callbacknumber]
               [/PHONEBOOK:phonebookfile] [/PREFIXSUFFIX]
 
       C:\Windows\system32\rasdial.EXE [entryname] /DISCONNECT
 
пример  
 
            System.Diagnostics.Process.Start(
              "rasdial", "MyConnectionName MyUserName MyPassword");

Всего записей: 47 | Зарегистр. 10-02-2008 | Отправлено: 15:16 01-06-2010
LuckyStrike



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго времени суток, уважаемые программисты...прошу помочь с задачкой: Реализовать в виде процедуры «Построчный алгоритм заполнения с затравкой».
вот алгоритм:
Алгоритм:
Push Затравка(x,y)
while <стек не пуст>
    Pop Пиксел(x,y)
    Пиксел(x,y)=Цвет_закраски
    Врем_x=x
    x=x+1
    while Пиксел(x,y)<>Цвет_границы
        Пиксел(x,y)=Цвет_закраски
        x=x+1
    end while
    Xправ=x-1
    x=Врем_x
    x=x-1
    while Пиксел(x,y)<>Цвет_границы
        Пиксел(x,y)=Цвет_закраски
        x=x-1
    end while
    Xлев=x+1
{ищем затравку на строке выше}
    x=Xлев
    y=y+1
    while x<=Xправ
        Флаг=0
        while  (Пиксел(x,y)<>Цвет_закраски and Пиксел(x,y)<>Цвет_границы
            and x<Xправ)
            if Флаг=0 then Флаг=1
            x=x+1
        end while
        if Флаг=1 then
            if (x=Xправ and Пиксел(x,y)<>Цвет_закраски and
                Пиксел(x,y)<>Цвет_границы) then
                Push Пиксел(x,y)
            else
                Push Пиксел(x-1,y)
            end if
            Флаг=0
        end if
        Xвход=x
        while  (Пиксел(x,y)=Цвет_закраски or Пиксел(x,y)=Цвет_границы)
            and (x<Xправ)
                x=x+1
        end while
        if x=Xвход then x=x+1 end if
    end while
{аналогично ищем затравку на строке ниже заполненной — y=y-1}
end while
finish
а нужно сделать в С#...вот что я сделал(можно и необязательно делать в точности как алгоритм)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Imaging;
using System.Runtime.InteropServices;
 
namespace лаба5_2
{
    public partial class Form1 : Form
    {
         
        public Form1()
        {
            InitializeComponent();
        }
        void floodFillScanline(int x, int y, int newColor, int oldColor)
        {
            int h=0;  
            int w = 0;
            int[,] screenBuffer=new int [0,0];
            if (oldColor == newColor) return;
            if (screenBuffer[x,y] != oldColor) return;
 
            int y1;
 
            //draw current scanline from start position to the top
            y1 = y;
            while (y1 < h && screenBuffer[x,y1] == oldColor)
            {
                screenBuffer[x,y1] = newColor;
                y1++;
            }
 
            //draw current scanline from start position to the bottom
            y1 = y - 1;
            while (y1 >= 0 && screenBuffer[x,y1] == oldColor)
            {
                screenBuffer[x,y1] = newColor;
                y1--;
            }
 
            //test for new scanlines to the left
            y1 = y;
            while (y1 < h && screenBuffer[x,y1] == newColor)
            {
                if (x > 0 && screenBuffer[x - 1,y1] == oldColor)
                {
                    floodFillScanline(x - 1, y1, newColor, oldColor);
                }
                y1++;
            }
            y1 = y - 1;
            while (y1 >= 0 && screenBuffer[x,y1] == newColor)
            {
                if (x > 0 && screenBuffer[x - 1,y1] == oldColor)
                {
                    floodFillScanline(x - 1, y1, newColor, oldColor);
                }
                y1--;
            }
 
            //test for new scanlines to the right  
            y1 = y;
            while (y1 < h && screenBuffer[x,y1] == newColor)
            {
                if (x < w - 1 && screenBuffer[x + 1,y1] == oldColor)
                {
                    floodFillScanline(x + 1, y1, newColor, oldColor);
                }
                y1++;
            }
            y1 = y - 1;
            while (y1 >= 0 && screenBuffer[x,y1] == newColor)
            {
                if (x < w - 1 && screenBuffer[x + 1,y1] == oldColor)
                {
                    floodFillScanline(x + 1, y1, newColor, oldColor);
                }
                y1--;
            }
        }
 
        private void panel1_Paint(object sender, PaintEventArgs e)
        {
            using (Bitmap bitmap = new Bitmap(500, 500))
            {
                using (Graphics g = Graphics.FromImage(bitmap))
                {
                    g.Clear(Color.White);
                    List<Point> points = new List<Point>();
                    for (double i = 0; i < 10; i++)
                    {
                        double dist = (i % 2 == 0) ? 100 : 50;
                        double x = 200 + Math.Cos(i / 10d * Math.PI * 2d) * dist;
                        double y = 200 + Math.Sin(i / 10d * Math.PI * 2d) * dist;
                        points.Add(new Point((int)x, (int)y));
                    }
                    g.DrawPolygon(Pens.Blue, points.ToArray());
                }
 
                floodFillScanline(0, 0, 330, 330);
 
                e.Graphics.DrawImage(bitmap, 0, 0);
            }
        }
    }
}
 

Всего записей: 78 | Зарегистр. 10-12-2008 | Отправлено: 22:54 01-06-2010
svs123456789

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Lihonosov
спасибо конечно, но по Ctrl-F броузер еще и переходит к найденному слову

Всего записей: 2932 | Зарегистр. 10-04-2003 | Отправлено: 13:59 02-06-2010
klimusu



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
hi.
 
в vs2010 создал новый веб сайт
создал таблицу
 
<table style="border-width: 0;">
    <tr>
        <td style="background-color: red; height: 100px; width: 100px;">
        </td>
        <td style="background-color: blue; height: 100px; width: 100px">
        </td>
    </tr>
</table>
 
откуда берется граница между квадратами?

Всего записей: 931 | Зарегистр. 23-01-2006 | Отправлено: 18:18 03-06-2010
LuckyStrike



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нужно реализовать алгоритм Сазерленда-Коэна на C#, для пояснения алгоритма вот ссылка http://www.mari.ru/mmlab/home/kg/Lection9/3.html
а вот код, только не работает(
 
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace Лаб_6
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        public System.Drawing.Graphics Gr;
        private void Form1_Load(object sender, EventArgs e)
        {
            Bitmap bmp = new Bitmap(300, 300);
            System.Drawing.Graphics Gr = Graphics.FromImage(bmp);
            Gr.Clear(Color.White);            
            Gr.DrawRectangle(Pens.Gray, 100, 100, 100, 100);
            pictureBox1.Image = bmp;
        }
        void end(int x, int y, ref Int32 kod, ref  Int32 summ)
        {
            kod = 0;
            summ = 0;
            int xl = 0;
            int xr = 0;
            int yn = 0;
            int yv = 0;
            if (x < xl) { kod += 1; summ++; };
            if (x > xr) { kod += 2; summ++; };
            if (y > yn) { kod += 4; summ++; };
            if (y < yv) { kod += 8; summ++; };
        }
 
        void koen(Int32 x1, Int32 y1, Int32 x2, Int32 y2, ref Int32 vid, ref Int32 kod1, ref Int32 kod2)
        {
            Int32 sum1 = 0, sum2 = 0;
            end(x1, y1, ref kod1, ref sum1);
            end(x2, y2, ref kod2, ref sum2);
            vid = 2;
            if (sum1 == 0 && sum2 == 0) vid = 1;
            else
            {
                Int32 pr = kod1 & kod2;
                if (pr != 0) vid = 0;
            }
 
        }
 
        int search(Int32 kod, Int32 i)
        {
            if (i == 4) return kod & 8;
 
            if (i == 3) return kod & 4;
            if (i == 2) return kod & 2;
            if (i == 1) return kod & 1; return 0;
        }
 
        void main()
        {
            Int32 x1 = Convert.ToInt32(textBox1.Text);
            Int32 y1 = Convert.ToInt32(textBox2.Text);
            Int32 x2 = Convert.ToInt32(textBox3.Text);
            Int32 y2 = Convert.ToInt32(textBox4.Text);
            Int32[] okno = new Int32[5];
            okno[1] = 100;
            okno[2] = 200;
            okno[3] = 200;
            okno[4] = 100;
            Int32 flag = 1;
            Double naklon = 0;
            Int32 kod1 = 0, kod2 = 0;
            if (x2 - x1 == 0) flag = -1;
            else
            {
                naklon = Convert.ToDouble(y2 - y1) / Convert.ToDouble(x2 - x1);
                if (naklon == 0) flag = 0;
            }
            for (Int32 i = 1; i <= 4; i++)
            {
                Int32 vid = 0;
                koen(x1, y1, x2, y2, ref vid, ref kod1, ref kod2);
                if (vid == 1) Gr.DrawLine(Pens.Gray, x1, y1, x2, y2);
                if (vid == 0) return;
                if (search(kod1, i) == (search(kod2, i))) continue;
                if (search(kod1, i) == 0)
                {
                    Int32 temp = x1; x2 = x1; x2 = temp;
                    temp = y1; y2 = y1; y2 = temp;
                }
 
                if ((flag != -1) && (i <= 2))
                {
                    y1 = Convert.ToInt32(naklon * Convert.ToDouble(okno[i] - x1)) + y1;
                    x1 = okno[i];
                }
                else
                {
                    x1 = Convert.ToInt32((1 / naklon) * Convert.ToDouble(okno[i] - y1)) + x1;
                    y1 = okno[i];
                }
 
            }
            Gr.DrawLine(Pens.Gray, x1, y1, x2, y2);
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
           Bitmap bmp = new Bitmap(300, 300);
            Gr = Graphics.FromImage(bmp);
            Gr.Clear(Color.White);
            Gr.DrawRectangle(Pens.Gray, 100, 100, 100, 100);
 
            main();
            pictureBox1.Image = bmp;
        }
    }
}
 
 
 

Всего записей: 78 | Зарегистр. 10-12-2008 | Отправлено: 19:31 03-06-2010
AngeL



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
May_Johnson спасибо попробую!

Всего записей: 69 | Зарегистр. 19-05-2004 | Отправлено: 08:45 04-06-2010
v1rtyaluk



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Здравствуйте, я опять здесь)))
помогите с очередными вопросами:
пишу приложение, что-то типа блокнота
не могу организовать функции Найти, Найти далее, Заменить, Перейти
помогите разобраться
 
сделал заменить, но не могу предусмотреть однократную замену.По нажатию кнопки заменяются все совпадения в тексте.Также нужно учитывать регистр и слова целиком.
 
помогите организовать эти функции(для наводки, текст вводится в элемент управления textBox а заменяется на элементе richtextBox)
 
Буду благодарен за помощь.
C#, MSVS2008

Всего записей: 110 | Зарегистр. 10-03-2010 | Отправлено: 15:06 04-06-2010
Omicron_Persey_8



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
v1rtyaluk
У RichTextBox есть стандартный функционал для поиска:
int RichTextBox.Find, для MatchCase и WholeWord есть соответствующие перегрузки.
Чтобы реализовать "Найти далее", вызываешь перегрузку Find с указанием позиции начала поиска. Например, ищешь строку "один". Вызов richTextBox1.Find("один"); тебе вернул, допустим, 42. Чтобы найти место, где "один" встречается еще раз, вызываешь, richTextBox1.Find("один", 43). Ну и далее в таком разрезе. По поводу заменить все просто: Find даст позицию в тексте, длина строки поиска известна, string.Replace() тебе в руки.

Всего записей: 282 | Зарегистр. 02-09-2007 | Отправлено: 18:05 06-06-2010
v1rtyaluk



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Omicron_Persey_8
с функциями найти и заменить я уже разобрался.
Никак не могу  организовать "Перейти" т.е. переход к определенной линии в richTextBox.
Как это сделать???

Всего записей: 110 | Зарегистр. 10-03-2010 | Отправлено: 18:55 06-06-2010
LuckyStrike



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго времени суток, не могли бы вы подсказать как осуществить корректность в dataGridView? то есть и в таблицу хочу добавить данные о книги, а эта книга уже есть, и чтобы вывело сообщение об этом?
вот добавление данных в таблицу:
Book b = new Book(textBox2.Text, textBox1.Text, (comboBox1.SelectedItem as Theme),textBox3.Text,textBox4.Text);        
            Global.firma.CentralSafe.Book.Add(b);
            int i = dataGridView1.Rows.Add();
       
            dataGridView1.Rows[i].Cells[0].Value = b.Name;
            dataGridView1.Rows[i].Cells[1].Value = b.Publish;
            dataGridView1.Rows[i].Cells[2].Value = b.Theme.Name;
            dataGridView1.Rows[i].Cells[3].Value = b.Cena;
            dataGridView1.Rows[i].Cells[4].Value = b.cenaOpt;  
а вот код для проверки:
Book b = new Book(textBox2.Text, textBox1.Text, (comboBox1.SelectedItem as Theme),textBox3.Text,textBox4.Text);
 
if (Global.firma.CentralSafe.Book.Contains(b))
{
   Global.firma.CentralSafe.Book.Add(b);
   int i = dataGridView1.Rows.Add();
 
   dataGridView1.Rows[i].Cells[0].Value = b.Name;
   dataGridView1.Rows[i].Cells[1].Value = b.Publish;
   dataGridView1.Rows[i].Cells[2].Value = b.Theme.Name;
   dataGridView1.Rows[i].Cells[3].Value = b.Cena;
   dataGridView1.Rows[i].Cells[4].Value = b.cenaOpt;  
но блин, с этим кодом проблема - даже если я введу название, издательство книги той, которой нет, а жанр введу тот который есть, то не добавиться, пишит что такая книга уже ест

Всего записей: 78 | Зарегистр. 10-12-2008 | Отправлено: 22:28 06-06-2010
BlackVetal



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
LuckyStrike
Я так понимаю что твой грид связан с "Global.firma.CentralSafe.Book" ? Если да, то у тебя 2 раза добавляется новая книга.
Еще: покажи код описывающий "Book" и "Global.firma.CentralSafe.Book". Тогда больше можно будет сказать что у тебя некоррктно и как лучше написать.

Всего записей: 1094 | Зарегистр. 13-11-2005 | Отправлено: 12:31 07-06-2010
mrherbrooks



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LuckyStrike
я бы на вашем месте подошел к решению вопроса немного по другому:
1. BindingList<Book>
2. Binding to DataGridView
3. Linq2Object

Всего записей: 129 | Зарегистр. 23-08-2008 | Отправлено: 16:33 07-06-2010
LuckyStrike



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо за советы, но я уже разобрался)

Всего записей: 78 | Зарегистр. 10-12-2008 | Отправлено: 17:39 07-06-2010
blaro



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Скажите, возможно ли вставить в код на Си Шарп функцию написаную на асме?

Всего записей: 311 | Зарегистр. 29-01-2006 | Отправлено: 14:24 08-06-2010 | Исправлено: blaro, 14:25 08-06-2010
V0lt



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

Цитата:
Скажите, возможно ли вставить в код на Си Шарп функцию написаную на асме?

по идее нет.

Всего записей: 10457 | Зарегистр. 05-02-2003 | Отправлено: 17:05 08-06-2010
KChernov



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

Цитата:
Скажите, возможно ли вставить в код на Си Шарп функцию написаную на асме?
 

В принципе можно сделать dll на С/С++, вставить в неё ассемблерную вставку и уже это вызвать из Шарпа.

Всего записей: 2471 | Зарегистр. 20-04-2004 | Отправлено: 17:37 08-06-2010
Omicron_Persey_8



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

Цитата:
Скажите, возможно ли вставить в код на Си Шарп функцию написаную на асме?

В общем случае нет. Придется делать прокси-dll либо на C/C++, либо MC++, или на другом языке поддерживающем ассемблерные вставки.

Всего записей: 282 | Зарегистр. 02-09-2007 | Отправлено: 13:12 10-06-2010
Открыть новую тему     Написать ответ в эту тему

Страницы: 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