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

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

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

cosmosliva



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Omicron_Persey_8
Спасибо
Действительно то что нужно  
Dictionary<int, Section>
 
попутный вопрос
не будет проблем с сериализацией

Всего записей: 46 | Зарегистр. 09-10-2003 | Отправлено: 06:50 20-09-2010
BlackVetal



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
LuckyStrike
Я тебе посоветую дугой способ. Ниже кусок кода - имитация работы конвееров. При чем идет распаралеливание как работы так и вывод информации о работе ковеера ...
Тыц

Всего записей: 1094 | Зарегистр. 13-11-2005 | Отправлено: 07:01 20-09-2010
Omicron_Persey_8



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

Цитата:
не будет проблем с сериализацией

Будут. Обобщенные коллекции List<T> и Dictionary<TKey, TValue> не сереализуются стандартно в xml при помощи SoapFormatter. Использование BinaryFormatter прокатит.

Всего записей: 282 | Зарегистр. 02-09-2007 | Отправлено: 09:52 20-09-2010 | Исправлено: Omicron_Persey_8, 09:53 20-09-2010
MagistrAnatol



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
господа, подсобите с регулярным выражением - закачиваю страничку
http://forum.ru-board.com/postings.cgi?action=edit&forum=35&topic=47321&postno=1
в ней есть номерок в строке
Номер от 13.09.2010 для включения WebFilter-а под ковриком (теги скрытия)23115:1423139878(теги скрытия).
как вытащить етот номер?

Всего записей: 2120 | Зарегистр. 09-04-2003 | Отправлено: 12:55 20-09-2010
MagistrAnatol



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
с регуляркой разобрался но теперь вопрос-
как закачать страницу с етого форума - раздел "Варез" - там требуется юзер/пас -
закачиваю
 HttpWebRequest WebRequestObject = (HttpWebRequest)HttpWebRequest.Create(textBox2.Text);
                        if (checkBox1.Checked)
                        {
                            WebProxy proxy = new WebProxy("proxy", 80);
                            proxy.BypassProxyOnLocal = true;
                            WebRequestObject.Proxy = proxy;
                        }
                        WebResponse Response = WebRequestObject.GetResponse();
                        Stream WebStream = Response.GetResponseStream();
                        StreamReader Reader = new StreamReader(WebStream, Encoding.GetEncoding(1251));
                        String PageContent = Reader.ReadToEnd();
                        Reader.Close();
                        WebStream.Close();
                        Response.Close();
но закачиваю страницу с незарегеным юзером ?????

Всего записей: 2120 | Зарегистр. 09-04-2003 | Отправлено: 15:16 20-09-2010
MagistrAnatol



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
вот с кучи примеров попробывал сваять для нашего сайта
 
            CookieContainer cookies;
            HttpWebRequest Request = (HttpWebRequest)WebRequest.Create("http://forum.ru-board.com/misc.cgi?action=login"); //делаем запрос
            Request.CookieContainer = new CookieContainer();
            HttpWebResponse Response = (HttpWebResponse)Request.GetResponse();//получаем ответ
            cookies = Request.CookieContainer;
            StreamReader sr = new StreamReader(Response.GetResponseStream());//получаем поток для чтения
            string htmlCode = sr.ReadToEnd(); //считали весь HTML-код
            Response.Close(); //обязательно закрываем сессию соединения
 
            htmlCode = Regex.Replace(htmlCode, "inmembername\" value=\"\"", "inmembername\" value=\"ЮЗЕР\"");
            htmlCode = Regex.Replace(htmlCode, "password name=\"inpassword\" value=\"\"", "password name=\"inpassword\" value=\"ПАРОЛЬ\"");
 
            StreamWriter sw = new StreamWriter("content.html"); //создаём поток записи и направляем его на файл
            sw.Write(htmlCode); //пишем скачанную строку
            sw.Close(); //закрываем поток
            StreamReader htmlContent = new StreamReader("content.html");
            Request = (HttpWebRequest)WebRequest.Create("http://forum.ru-board.com/misc.cgi?action=login"); //снова запрос
            Request.CookieContainer = cookies;
            StreamWriter serverRequest = new StreamWriter(Request.GetRequestStream()); //создаём поток управления для отправки данных на сервер.
            serverRequest.Write(htmlContent.ReadToEnd()); //скармливаем серваку содержимое файла  
             
            Response = (HttpWebResponse)Request.GetResponse();//получаем ответ на авторизацию
 
но получаю ошибку в строке
System.Net.ProtocolViolationException не обработано
  Message=Невозможно отправить тело содержимого с данным типом предиката.
  Source=System
  StackTrace:
       в System.Net.HttpWebRequest.CheckProtocol(Boolean onRequestStream)
       в System.Net.HttpWebRequest.GetRequestStream(TransportContext& context)
       в System.Net.HttpWebRequest.GetRequestStream()
       в WindowsFormsApplication2.Form1.button1_Click(Object sender, EventArgs e) в D:\Робота\Проекты в розробке\WindowsFormsApplication2\WindowsFormsApplication2\Form1.cs:строка 43
       в System.Windows.Forms.Control.OnClick(EventArgs e)
       в System.Windows.Forms.Button.OnClick(EventArgs e)
       в System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
       в System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
       в System.Windows.Forms.Control.WndProc(Message& m)
       в System.Windows.Forms.ButtonBase.WndProc(Message& m)
       в System.Windows.Forms.Button.WndProc(Message& m)
       в System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       в System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       в System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
       в System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
       в System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
       в System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
       в System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
       в System.Windows.Forms.Application.Run(Form mainForm)
       в WindowsFormsApplication2.Program.Main() в D:\Робота\Проекты в розробке\WindowsFormsApplication2\WindowsFormsApplication2\Program.cs:строка 18
       в System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
       в System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
       в Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       в System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
       в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       в System.Threading.ThreadHelper.ThreadStart()
  InnerException:  
 

Всего записей: 2120 | Зарегистр. 09-04-2003 | Отправлено: 18:07 20-09-2010
MagistrAnatol



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
господа, есть webBrowser
 webBrowser1.Navigate("http://forum.ru-board.com/misc.cgi?action=login");
как мне подождать пока не загрузится страница а потом выполнять код дальше?

Всего записей: 2120 | Зарегистр. 09-04-2003 | Отправлено: 12:53 21-09-2010
v1rtyaluk



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Здравствуйте!
Как использовать КукиКонтайнер от первого хттп запроса в другом?
Пробую так:

Код:
 
private CookieContainer cookieContainer=new CookieContainer();
string goToUri, goToUri2;
public void Login()
{
            HttpWebRequest httpWebRequest =
                (HttpWebRequest)
                WebRequest.Create(goToUri);
            httpWebRequest.CookieContainer = cookieContainer;
StreamReader reader = null;
            try
            {
                HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();
                reader = new StreamReader(httpWebResponse.GetResponseStream());
                reader.Close();
                httpWebResponse.Close();
                HttpWebRequest httpWebRequest2 = (HttpWebRequest) WebRequest.Create(goToUri2);
                httpWebRequest2.CookieContainer = cookieContainer;
...
}
 

но, ничего не выходит.
Что не так?

Всего записей: 110 | Зарегистр. 10-03-2010 | Отправлено: 14:54 21-09-2010
MagistrAnatol



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
народ, что надо поставить на тачке чтобы заработала прога на 4 фреймворке?
dotNetFx40_Client_x86_x64.exe  
dotNetFx40_Full_x86_x64.exe  
???
или все?

Всего записей: 2120 | Зарегистр. 09-04-2003 | Отправлено: 17:39 21-09-2010
MagistrAnatol



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
господа, есть код
                                HtmlElement l_element = webBrowser.Document.GetElementById("submit");
                                object obj = l_element.DomElement;
                                MethodInfo mi = obj.GetType().GetMethod("click");
                                mi.Invoke(obj, new object[0]);
 
в строке                                 mi.Invoke(obj, new object[0]); пр запуске на 2003 винде, на вынь 7все нормально, вываливается ошибка
System.NullReferenceException: Object reference not set to an instance of an object.
как ее побороть или как по другому нажать кнопку на форме логина веб страницы?  

Всего записей: 2120 | Зарегистр. 09-04-2003 | Отправлено: 10:25 22-09-2010
Omicron_Persey_8



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

Цитата:
народ, что надо поставить на тачке чтобы заработала прога на 4 фреймворке?  
dotNetFx40_Client_x86_x64.exe  
dotNetFx40_Full_x86_x64.exe  
???  
или все?

Это зависит от того, чего ты наваял в проекте. В студии есть шаблоны для Client Profile.
   
Client Profile - это набор часто используемых, по мнению Майкрософт, сборок:
    common language runtime (CLR)
    ClickOnce
    Windows Forms
    Windows Presentation Foundation (WPF)
    Windows Communication Foundation (WCF)
    Entity Framework
    Windows Workflow Foundation
    Speech
    XSLT support
    LINQ to SQL
    Runtime design libraries for Entity Framework and WCF Data Services  
    Managed Extensibility Framework (MEF)
    Dynamic types
    Parallel-programming features, such as Task Parallel Library (TPL), Parallel LINQ (PLINQ), and Coordination Data Structures (CDS)
    Debugging client applications

Подробности тут.

Всего записей: 282 | Зарегистр. 02-09-2007 | Отправлено: 12:18 22-09-2010 | Исправлено: Omicron_Persey_8, 12:19 22-09-2010
MagistrAnatol



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Omicron_Persey_8
понятно.
А по поводу предыдущего поста ??
                                foreach (HtmlElement heForm in webBrowser.Document.Forms)
                                {
                                    HtmlElement he = heForm.All["inmembername"];
                                    if (he != null)
                                    {
                                        he.SetAttribute("value", textBox3.Text);
                                    }
                                }
 
                                foreach (HtmlElement heForm in webBrowser.Document.Forms)
                                {
                                    HtmlElement he = heForm.All["inpassword"];
                                    if (he != null)
                                    {
                                        he.SetAttribute("value", textBox5.Text);
                                    }
                                }
                                MessageBox.Show(textBox3.Text + ":" + textBox5.Text);
                                toolStripStatusLabel1.Text = "Логинимся";
                                // код не работае на винь 2003
                                HtmlElement l_element = webBrowser.Document.GetElementById("submit");
                                object obj = l_element.DomElement;
                                System.Reflection.MethodInfo mi = obj.GetType().GetMethod("click");
                                mi.Invoke(obj, new object[0]); - на 2003 винде System.NullReferenceException: Object reference not set to an instance of an object
а webBrowser.Document.All["submit"].InvokeMember("click"); почему-то отправляет неверные данные и выдает страницу с незарегеным юзером?  
 
 
Добавлено:
блин,
 webBrowser.Document.All["inmembername"].SetAttribute("value", textBox3.Text);
webBrowser.Document.All["inpassword"].SetAttribute("value", textBox5.Text);
 webBrowser.Document.All["submit"].InvokeMember("click");
на вынь 7 работает на вынь 2003 нет - шо за хрень?
 
Добавлено:
Omicron_Persey_8
если у меня в свойствах проекта стоит Клиент профайл - то ставить надо .нет клиент профайл?

Всего записей: 2120 | Зарегистр. 09-04-2003 | Отправлено: 13:27 22-09-2010 | Исправлено: MagistrAnatol, 13:28 22-09-2010
Omicron_Persey_8



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

Цитата:
если у меня в свойствах проекта стоит Клиент профайл - то ставить надо
 .нет клиент профайл?

Не принципиально. .NET Framework Full включает в себя Client Profile.
 
А по поводу кода, думаю что здесь

Код:
System.Reflection.MethodInfo mi = obj.GetType().GetMethod("click");

mi = null.

Всего записей: 282 | Зарегистр. 02-09-2007 | Отправлено: 17:09 22-09-2010
MagistrAnatol



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Omicron_Persey_8
да, но почему тогда работает на вынь 7?

Всего записей: 2120 | Зарегистр. 09-04-2003 | Отправлено: 11:51 23-09-2010
ComradG



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Напарился я уже с написанием межъязыкового конвертора NET: после прогона на нескольких простых примерах выяснилось, что нельзя сделать конвертор универсальным. Например, VB.NET код:

Код:
Imports System
Imports Microsoft.VisualBasic
 
Module MainModule
 
   Public Sub Main()
      Dim intHigh As Integer = 100
      Dim intLow As Integer = 1
      Dim intNum As Integer
 
      For i As Integer = 1 To 5
         Randomize
         intNum = Int((intHigh - intLow + 1) * Rnd + intLow)
         Console.WriteLine(intNum)
      Next
   End Sub
 
End Module

конветор пытается перевести в C# следущим образом:

Код:
using System;
using Microsoft.VisualBasic;
 
public class MainClass
{
    static void Main()
    {
        int intHigh = 100, intLow = 1, intNum;
 
        for (int i = 0; i <= 5; i++)
        {
             VBMath.Randomize();
             intNum = Int(intHigh - intLow + 1) * Rnd + intLow);
             Console.WriteLine(intNum);
        }
     }
}

Даже новичок увидит баги: в случае с С# задачка решается иначе. И потом, похоже все же довольно плохая идея делать конвертор сорцов VB.NET в C#, неправда ли?

Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 20:00 23-09-2010
Omicron_Persey_8



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

Цитата:
И потом, похоже все же довольно плохая идея делать конвертор сорцов VB.NET в C#, неправда ли?

Ну, в общем, да. Если это полностью готовый класс, то его проще в отдельную сборку скомпоновать. Если кусок алгоритма - то лучше руками перевести, заодно в работе разобраться.  
Кстати, посмотри в сторону CodeDOM. Он предназначен несколько для другого, но код парсить может. Хороший пример.
 
MagistrAnatol

Цитата:
да, но почему тогда работает на вынь 7?

А .NET и HTML для разбора один и тот же?

Всего записей: 282 | Зарегистр. 02-09-2007 | Отправлено: 00:26 24-09-2010
MagistrAnatol



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Omicron_Persey_8
ага, причем на 2 версии нета одни ошибки на 4 другие, точнее разные реализации,
а страничка одна и та же логин етого форума,
да я в принцыпе уже сделал - соединил два варианта реализации,
просто интересно почему так, видать в дот нете используются и библиотеки сыстемы
не дот.нетовские

Всего записей: 2120 | Зарегистр. 09-04-2003 | Отправлено: 09:15 24-09-2010
ComradG



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Omicron_Persey_8
Спасибо за советы. Относительно примера с codeproject - смотрел. Интересная штука. Но, наверное, все же от дальнейшей разработки конвертора все же откажусь, ибо в чем я действительно не ахти разбираюсь, так это VB.NET, на C# то я прогаю с самых первых версий языка. Так что буду кодить дальше IDE только для C#

Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 11:41 24-09-2010
salexn1



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вопрос по Asp.Net.  Есть форма, в которой используется модально окно, реализованное на ModalPopupExtender из AjaxControlToolkit. Необходимо в этом модальном окне при нажатии на кнопку показать еще одно модальное окно. Бьюсь - не получается. Если можно - небольшой пример кода.
Спасибо!

Всего записей: 502 | Зарегистр. 21-02-2008 | Отправлено: 11:44 24-09-2010
Omicron_Persey_8



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

Цитата:
просто интересно почему так, видать в дот нете используются и библиотеки сыстемы  
не дот.нетовские

Конечно, платформа .NET не Java, которая по большей части сама на себе написана. .NET без винды немыслим. А класс HtmlElement, которым ты парсишь страницу, работает через COM-интерфейс IHtmlDocument, который сидит в библиотеке mshtml.dll и является куском InternetExplorer'а. А уж он-то в 2003 винде и в 7-ке разный.

Всего записей: 282 | Зарегистр. 02-09-2007 | Отправлено: 01:33 25-09-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