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

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

  1. Spot

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

    Joined:
    1 Mar 2007
    Messages:
    462
    Likes Received:
    38
    Reputations:
    1
    Рандомить каждый раз при клики на кнопку.
    Code:
    
    public static string[] x = { "Дерево", "Дом", "Книга" };
    
    private void button1_Click(object sender, EventArgs e)
    {
    static Random rand = new Random();
    public string random_item = x[rand.Next(x.Length)];
    label6.Text = random_item;
    }
    
     
  2. ilya29

    ilya29 New Member

    Joined:
    19 Sep 2012
    Messages:
    9
    Likes Received:
    0
    Reputations:
    0
    Во первых у вас ошибка в коде.
    Во вторых значение не меняется если несколько раз на клик нажимать.
     
  3. Spot

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

    Joined:
    1 Mar 2007
    Messages:
    462
    Likes Received:
    38
    Reputations:
    1
    Во первых если у кого и ошибка в коде, то у тебя. Я тебе показал на примере твоего кода, где нужна запускать рандом функцию.
    Во вторых если уж есть ошибка, то стоит привести её здесь.
     
  4. Spot

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

    Joined:
    1 Mar 2007
    Messages:
    462
    Likes Received:
    38
    Reputations:
    1
    Показываю два рабочих примера.
    1.
    Code:
    namespace RandShow
    {
        /// <summary>
        /// Interaktionslogik für MainWindow.xaml
        /// </summary>
        public partial class MainWindow : Window
        {
            public MainWindow()
            {
                InitializeComponent();
                
            }
            public static Random rand = new Random(2);
    
            private void Button_Click_1(object sender, RoutedEventArgs e)
            {
                
                MessageBox.Show(FirstBox.Text+rand.Next(10));
            }
        }
    }
    
    2.
    Code:
    namespace RandShow
    {
        /// <summary>
        /// Interaktionslogik für MainWindow.xaml
        /// </summary>
        public partial class MainWindow : Window
        {
            public MainWindow()
            {
                InitializeComponent();
                
            }
    
            private void Button_Click_1(object sender, RoutedEventArgs e)
            {
                System.Random rand = new System.Random((int)System.DateTime.Now.Ticks);
                MessageBox.Show(FirstBox.Text+rand.Next(1,100));
                
            }
             
        }
    }
    
    Поисковик на фразу "c# random" выдаёт море инфы.
     
  5. ilya29

    ilya29 New Member

    Joined:
    19 Sep 2012
    Messages:
    9
    Likes Received:
    0
    Reputations:
    0
    у меня есть одномерный массив типа стринг
    нужно чтобы на экран выводился один из 3 массивов
    если он выводился, то программа должна например писать "вывелся 1-ый массив"
    я все облазил ничего похожего и близко не нашел
     
  6. FunOfGun

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

    Joined:
    5 Sep 2012
    Messages:
    391
    Likes Received:
    70
    Reputations:
    124
    Мутновато описано... Может угадал:
    Code:
    using System;
    
    namespace prg
    {
    	class Program
    	{
    		public static void Main(string[] args)
    		{
    			string[] arr1={"11","12","13"};
    			string[] arr2={"21","22","23"};
    			string[] arr3={"31","32","33"};
    			
    			Console .WriteLine ("Выводим массив 2:");
    			printArr (arr2);
    			
    			Console.Write("Press any key to continue . . . ");
    			Console.ReadKey(true);
    		}
    		
    		private static void printArr(string[] arr){
    			foreach (string s in arr) Console .WriteLine (s);
    		}
    	}
    }
     
  7. ilya29

    ilya29 New Member

    Joined:
    19 Sep 2012
    Messages:
    9
    Likes Received:
    0
    Reputations:
    0
    Вот мой код.
    Но он требует идентификатора после Array
     
  8. fobia_smog

    fobia_smog New Member

    Joined:
    31 May 2010
    Messages:
    11
    Likes Received:
    0
    Reputations:
    0
    c#

    Проблема заключается в следующем:
    Мне нужно постоянно расширять расширять матрицу (тоесть сначала 1х1 потом 2х2 и тп), но при каждой команде new int[value, value]; он перезаписывает матрицу, обнуляя её элементы. Подскажите пожалуйста, что нужно делать.
     
  9. fPoint

    fPoint New Member

    Joined:
    24 Sep 2012
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    Можно сделать на связных списках. Обычно в стандартной библиотеки всех современных языков есть такое. Но вот на всякий случай http://ru.wikipedia.org/wiki/Связный_список

    С такой структурой данных тебе не придётся перезаписывать всю матрицу в новый массив при увеличении. Теперь ты сможешь к каждой строке добавить в конце элемент, и добавить одну строку (1x1)=>(2x2)
     
  10. fobia_smog

    fobia_smog New Member

    Joined:
    31 May 2010
    Messages:
    11
    Likes Received:
    0
    Reputations:
    0
    А без списков можно?
     
  11. FunOfGun

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

    Joined:
    5 Sep 2012
    Messages:
    391
    Likes Received:
    70
    Reputations:
    124
    Где-то так:
    Code:
    int[,] matrix={{1},{2}};//оригинальный массив
    int[,] newMatrix=new int[2,2];//временный массив
    for (int i=0; i<=matrix.GetUpperBound(0);i++)
      for (int j=0; j<=matrix.GetUpperBound(1),j++)
        newMatrix[i,j]=matrix[i,j];//все, что есть в оригинале копируем в новый массив
    matrix=newMatrix;
    
     
  12. tmp

    tmp Banned

    Joined:
    10 Mar 2005
    Messages:
    420
    Likes Received:
    32
    Reputations:
    1
    Пришлось все таки начать изучение с нуля java.
    Возник вопрос по операции инкремента.
    Если определено значение переменной А=1
    Потом определяем переменную В = ++А
    ТО в результате и В и А будут ==2 ?
    То есть и в дальнейшем в блоке переменная А будет иметь значение увеличенное на 1?
     
  13. FunOfGun

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

    Joined:
    5 Sep 2012
    Messages:
    391
    Likes Received:
    70
    Reputations:
    124
    Да, а если b=a++; то b будет равно 1, а а после этой строчки -- 2.
     
    1 person likes this.
  14. dars_go

    dars_go New Member

    Joined:
    22 Sep 2007
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    Хотелось бы узнать по поводу использования RdpClient на C#, возможна ли какая-то реализация автоматического управления сервером через него? т.е. грубо говоря коннектит, открывает на сервере сайт, получаю какие-то данные о том, открылась страница или нет, затем эти данные сопоставляю с условиями и т.д.
     
  15. Spot

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

    Joined:
    1 Mar 2007
    Messages:
    462
    Likes Received:
    38
    Reputations:
    1
    Ммм, не сталкивался с ним, но погуглив пришёл к выводу, что это всё таки для удалённого доступа сервером, а для поставленной вами задачи лучше отдельно писать демон и его уже запускать удалённо на сервере. Собственно и не вижу смысла пихать в RdpClient левые задачи. Мухи отдельно, котлеты отдельно.
     
  16. dars_go

    dars_go New Member

    Joined:
    22 Sep 2007
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    да суть на самом деле - автоматизация работы с дедиками, заливать на каждый вручную софт - это собственно и есть одна из основных проблем которую хотелось бы решить.

    Может подскажешь в какую сторону копать?
     
  17. Spot

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

    Joined:
    1 Mar 2007
    Messages:
    462
    Likes Received:
    38
    Reputations:
    1
    Можно покапаться в сети, возможно уже есть подобный софт.
    Я бы делал так - по фтп бы заливал нужные файлы на серваки. Делаешь .txt документ в который сохранеешь данные о сервере в форме: ftp://777777;username;pass;
    Потом просто считываешь данные из файла и коннектишся, заливая файл. Вот тут можно ознакомиться с примером . Правда на немецком, но код лёгкий - всё понятно. Идёт всё через FtpWebRequest.
    Вместо в коде указанных username,pass берёшь их из файла.
    Так же возможно Batman или Thunderbird имеют функцию массовой рассылки одного файла на множества серверов, но это ты уже сам посмотри.
     
  18. [SMD]

    [SMD] Member

    Joined:
    17 Nov 2010
    Messages:
    32
    Likes Received:
    5
    Reputations:
    0
    Всем привет, проблема такая:
    Написал небольшой чекер, на форму бросил только кнопку для старта, лог и пусть до файла с акками.
    Проблема заключается в том, что после нажатия кнопки "старт", после чего софт должен начать чек, программа подвисает до момента окончания работы и в логе выдает сразу все.
    Т.е. при нормальном процессе по идее она должна последовательно выдавать в лог сообщения и не должна уж ни как подвисать..

    В чем может быть проблема?
     
  19. mironich

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

    Joined:
    27 Feb 2011
    Messages:
    736
    Likes Received:
    73
    Reputations:
    19
    Класно обьснил, ТУТ ТЕЛЕПАТОВ НЕТ ДАВАЙ КОД!
     
  20. [SMD]

    [SMD] Member

    Joined:
    17 Nov 2010
    Messages:
    32
    Likes Received:
    5
    Reputations:
    0
    Code:
    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.Net;
    using System.IO;
    using System.Text.RegularExpressions;
    using System.Threading;
    using System.Web;
    
    namespace sitecom
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
    
            private void button1_Click(object sender, EventArgs e)
            {
                this.listBox1.Items.Add("Начало работы!");
                Random rnd = new Random();
                string[] accs = System.IO.File.ReadAllLines(textBox1.Text, Encoding.GetEncoding(1251));
                string[] agents = System.IO.File.ReadAllLines("agents.txt");
                string Login = String.Empty, Pass = String.Empty;
    
                for (int i = 0; i <= accs.Length; i++)
                {
                    string pattern_login = "(.*):";
                    Regex regex_login = new Regex(pattern_login);
                    Match match_login = regex_login.Match(accs[i]);
    
    
                    string pattern_pass = ":(.*)";
                    Regex regex_pass = new Regex(pattern_pass);
                    Match match_pass = regex_pass.Match(accs[i]);
    
                    HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://site.com");
                    request.UserAgent = agents[rnd.Next(0, agents.Length)];
                    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                    string html = new StreamReader(response.GetResponseStream(), Encoding.UTF8).ReadToEnd();
    
                    string sCookies = response.Headers["Set-Cookie"];
    
    
                    string pattern = "<form action=\"(.*)\" method=\"post\">";
                    Regex regex = new Regex(pattern);
                    Match match = regex.Match(html);
                    //match.Groups[1].ToString()
    
                    
    
                    string pattern_ck = "<input type=\"hidden\" name=\"CK\" value=\"(.*)\"/>";
                    Regex regex_ck = new Regex(pattern_ck);
                    Match match_ck = regex_ck.Match(html);
                    //match_ck.Groups[1].ToString()
    
    
                    HttpWebRequest myHttpWebRequest = (HttpWebRequest)HttpWebRequest.Create(match.Groups[1].ToString());
                    myHttpWebRequest.Method = "POST";
                    myHttpWebRequest.Referer = "http://site.com";
                    myHttpWebRequest.UserAgent = agents[rnd.Next(0, agents.Length)];
                    myHttpWebRequest.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
                    myHttpWebRequest.Headers.Add("Accept-Language", "ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3");
                    myHttpWebRequest.ContentType = "application/x-www-form-urlencoded";
                    myHttpWebRequest.Headers.Add(HttpRequestHeader.Cookie, sCookies);
                    //HttpUtility.UrlEncode(match_name.Groups[1].ToString()
                    string sQueryString = "name=" + HttpUtility.UrlEncode(match_login.Groups[1].ToString()) + "&password=" + HttpUtility.UrlEncode(match_pass.Groups[1].ToString()) + "&cfms=%D0%92%D0%BE%D0%B9%D1%82%D0%B8&sid=&CK=" + match_ck.Groups[1].ToString() + "&link_id=0";
                    byte[] ByteArr = System.Text.Encoding.GetEncoding(1251).GetBytes(sQueryString);
                    myHttpWebRequest.ContentLength = ByteArr.Length;
                    myHttpWebRequest.GetRequestStream().Write(ByteArr, 0, ByteArr.Length);
    
                    // делаем запрос
                    HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
                    html = new StreamReader(myHttpWebResponse.GetResponseStream(), Encoding.UTF8).ReadToEnd();
                    if (myHttpWebResponse.Headers["Result"] == "302") 
                    {
                        this.listBox1.Items.Add("Авторизовались!");
                        System.IO.File.AppendAllText("good.txt", accs[i] + "\n");
                    }
                    else 
                    {
                        this.listBox1.Items.Add("Не авторизовались");
                        System.IO.File.AppendAllText("bad.txt", accs[i] + "\n");
                    }
                    Thread.Sleep(2000);
                    this.listBox1.Items.Add(i);
                }
                this.listBox1.Items.Add("Завершили работу!");
                
    
            }
    
    
    
        }
    }
     
Loading...