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

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

  1. SKOLKOVO

    SKOLKOVO Banned

    Joined:
    30 Aug 2011
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    небось все накожено в одном классе - формы)
    что за приложение?
    сильверлайт, WPF - копай в сторону паттерна MVVM
    грамотно написанное приложение - само себя исправит)
    а по сабжу, того куска кода недостаточно для ответа.
    у тебя после цикла картинка пропадает вообще или возвращается в начальную точку? или как?
    я не знаю что ты там намудрил в коде но все довольно таки просто и ничего никуда не пропадает))

    вот вин формс сборка которая работает )
    смотри сам что у тебя не так

    PHP:
    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.Threading;

    namespace 
    WindowsFormsApplication1
    {
        public 
    partial class Form1 Form
        
    {
            public 
    Form1()
            {
                
    InitializeComponent();
            }

            private 
    void button1_Click(object senderEventArgs e)
            {
                for (
    int i 0100i++)
                {
                    
    Point p = new Point(i,i);
                    
    pictureBox1.Location p;
                    
    Thread.Sleep(100);
                }
            }
        }
    }
    красиво и плавно ездит по форме)
     
  2. SKOLKOVO

    SKOLKOVO Banned

    Joined:
    30 Aug 2011
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    Зы\ угадай с двух раз что делает апдейт форме в последнем кругу цикла у тебя в коде )))
     
  3. geforse

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

    Joined:
    2 Mar 2008
    Messages:
    617
    Likes Received:
    290
    Reputations:
    1
    SKOLKOVO, спасибо :)

    Ещё раз убеждаюсь, что ночью кодить не нужно)
    Большой код, в конце затерялась строчка: "PictureBox.Visible = false;" :D
     
  4. [Gold]Shell

    [Gold]Shell Banned

    Joined:
    4 Jul 2011
    Messages:
    2
    Likes Received:
    1
    Reputations:
    0
    [​IMG]
    Что за компонент, два последних поля? Интересует выделение разным цветом, как реализовать?
     
  5. Niades

    Niades New Member

    Joined:
    30 Nov 2010
    Messages:
    28
    Likes Received:
    3
    Reputations:
    0
    Рискну предположить, что это из набора DevExpress.
     
  6. X-rus

    X-rus Member

    Joined:
    22 Dec 2010
    Messages:
    88
    Likes Received:
    22
    Reputations:
    4
    [MSDN: ListView]

    У [MSDN: ListViewItem] можно задать цвет заднего фона и цвет текста.
     
  7. Radzhab

    Radzhab New Member

    Joined:
    12 Sep 2011
    Messages:
    9
    Likes Received:
    0
    Reputations:
    0
    PHP:
    public string radikal()
            {
              
    HttpWebResponse myHttpWebResponse2 null;
     
              
    string imageURL;
     
              try
              {
     
                  
    //Делаем запрос на сервер
     
                  
    HttpWebRequest myHttpWebRequest2 = (HttpWebRequest)HttpWebRequest.Create("http://www.radikal.ru/action.aspx");
     
                  
    myHttpWebRequest2.Method "POST";
     
                  
    myHttpWebRequest2.Referer "http://www.radikal.ru";
     
                  
    myHttpWebRequest2.UserAgent "Mozila/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MyIE2;";
     
                  
    myHttpWebRequest2.Accept "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*";
     
                  
    myHttpWebRequest2.Headers.Add("Accept-Language""ru");
     
                  
    myHttpWebRequest2.ContentType "application/x-www-form-urlencoded";
     
     
     
                  
    //Ставим False, чтобы при получении кода 302 не делать
     
                  //автоматического перенаправления
     
                  
    myHttpWebRequest2.AllowAutoRedirect false;
     
                  
    string sQueryString "upload=yes&URLF=" imageURL "&O=yes&M=240&JQ=100&IM=7&VM=180&R=0&VE=yes&V=Увел  ичить";
     
                  
    byte[] ByteArr Encoding.GetEncoding(1251).GetBytes(sQueryString);
     
                  
    myHttpWebRequest2.ContentLength ByteArr.Length;
     
                  
    myHttpWebRequest2.GetRequestStream().Write(ByteArr0ByteArr.Length);
     
                  
    //Получаем ответ от сервера
     
                  
    myHttpWebResponse2 = (HttpWebResponse)myHttpWebRequest2.GetResponse();
     
                  
    StreamReader myStreamReader = new StreamReader(myHttpWebResponse2.GetResponseStream(), Encoding.GetEncoding(1251));
     
                  
    //Получаем HTML-код страницы и вытаскиваем из него ссылку на изображение
     
                  
    string txt myStreamReader.ReadToEnd();
     
                  
    //myHttpWebResponse2.Close();
     
                  
    Match res Regex.Match(txt"<input [^>]*id=\"input_link_1\"[^>]*value=\"(?<Value>[^\"]+)\"[^>]+/>");
     
                  if (
    res.Success)
                  {
     
                      
    imageURL res.Groups[1].Value;
     
                      return 
    imageURL;
                  } 
                  else
                      return 
    imageURL String.Empty;
              } 
              catch (
    WebException e)
              {
                  if (
    e.Status == WebExceptionStatus.ProtocolError)
                  {
     
                  }
                  return 
    imageURL String.Empty;
              }
     
    finally
     
    {
     
    if (
    myHttpWebResponse2 != null)
     
    myHttpWebResponse2.Close();
     
    }
    Здесь идет заливка на сайт Radikal.ru через урл. А как сделать чтобы шла отправка файла с компа
     
  8. inCode

    inCode Member

    Joined:
    20 Jun 2011
    Messages:
    141
    Likes Received:
    22
    Reputations:
    5
    снифер в руки, вот контент пост реквеста на радикал.

    Картинка переводится в байты + указываются некоторые данные.

     
  9. Radzhab

    Radzhab New Member

    Joined:
    12 Sep 2011
    Messages:
    9
    Likes Received:
    0
    Reputations:
    0
    PHP:
    upload          yes                                                                             3      
    GEO_POINT_ID                                                                                    0      
    F               
    <Place Holder for File>  650x_4d7463190cdec.jpg  Content-Typeimage/pjpeg

      86458  
    URLF                                                                                            0      
    O               yes                                                                             3      
    M               640                                                                             3      
    JQ              85                                                                              2      
    J               yes                                                                             3      
    IM              7                                                                               1      
    VM              180                                                                             3      
    R               0                                                                               1      
    VE              yes                                                                             3      
    V               РЈРІРµР»РёС‡РёС‚СЊ                                                              18     
    X                                                                                               0      
    FS                                                                                              0      
     
  10. Чакэ

    Чакэ Elder - Старейшина

    Joined:
    15 Aug 2010
    Messages:
    260
    Likes Received:
    66
    Reputations:
    62
    wpf сделать максимально точную копию вендового калькулятора, по сути ничего сложного, но уже час голову ломаю как оптимально считать результат, то есть ввели одно число, нажали на (плюс|минус|etc) и вывели результат. конечно можно вешать на каждую кнопку свой обработчик и в нём уже производить операцию вычисления конечного результата. или один обработчик на все четыре кнопки и например смотреть по тексту на самой кнопке ну и потом if else (бред да?) а хотелось бы что то типа res.Text=a [пихнули соответствующий символ] b. сам символ пихнуть не проблема. сделать например тот же массив и по ключу его достать. но вот получится int = int char int вместо int = int (+|-|*|/) int или так нельзя в принципе? похапэ меня разбаловал :D
     
  11. inCode

    inCode Member

    Joined:
    20 Jun 2011
    Messages:
    141
    Likes Received:
    22
    Reputations:
    5
    если чесно вообще не понял, что тебе нужно :D
    можно обычным свичом

    Code:
    switch(char znak)
    {
      case '+':
       a + b;
       break;
      case '-':
       a - b;
       break;
    //и т.д.
    }
    
     
  12. Чакэ

    Чакэ Elder - Старейшина

    Joined:
    15 Aug 2010
    Messages:
    260
    Likes Received:
    66
    Reputations:
    62
    та уже так и делаю. об этом я и говорил что ловить знак и в ифы его кинуть. одной строкой было бы кошерно вместо ветвлений :D но видимо это не возможно
     
  13. TweakeR

    TweakeR Member

    Joined:
    6 Feb 2006
    Messages:
    54
    Likes Received:
    8
    Reputations:
    5
    Здравствуйте, подскажите пожалуйста, как можно разбить текстовой файл на части по размеру? По частям нашел а вот с размером проблемка.
     
  14. inCode

    inCode Member

    Joined:
    20 Jun 2011
    Messages:
    141
    Likes Received:
    22
    Reputations:
    5
    Code:
    long parts = 2L; // Кол-во частей
                using (FileStream fs = new FileStream("D:\\1\\1.txt", FileMode.Open, FileAccess.Read)) {
                    long partSz = fs.Length / parts; // Размер одной части
                    byte[] buff;
                    bool mod = fs.Length % parts == 0; // Все части одного размера
                    for (int i = 0; i < parts; i++) {
                        using (FileStream pStream = new FileStream(string.Format("D:\\1\\{0}.part", i), FileMode.Create, FileAccess.Write)) {
                            buff = new byte[i == parts - 1 && !mod ? fs.Length - (parts - 1) * partSz : partSz];
                            fs.Read(buff, 0, buff.Length);
                            pStream.Write(buff, 0, buff.Length);
                        }
                        buff = null;
                    }
                }
    
     
  15. Radzhab

    Radzhab New Member

    Joined:
    12 Sep 2011
    Messages:
    9
    Likes Received:
    0
    Reputations:
    0
    Использую готовый класс от Glook для multipart/form data
    Code:
    [/COLOR]using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Net;
    using System.IO;
    using System.Security.Cryptography;
    
    namespace WebTools
    {
        class MultiPartForm : IDisposable
        {
            private Stream _stream;
            private string _boundary;
            private string _templateData = "--{0}\r\nContent-Disposition: form-data; name=\"{1}\"\r\n\r\n{2}\r\n";
            private string _templateFile = "--{0}\r\nContent-Disposition: form-data; name=\"{1}\"; filename=\"{2}\"\r\nContent-Type: {3}\r\n\r\n";
            private string _templateEnd = "--{0}--\r\n\r\n";
    
            public MultiPartForm(WebRequest Request)
            {
                _boundary = String.Format("--{0}", GetMD5());
                Request.Method = "POST";
                Request.ContentType = String.Format("multipart/form-data; boundary={0}", _boundary);
                _stream = Request.GetRequestStream();
            }
    
            public void AddData(string Name, string Value)
            {
                byte[] contentData = Encoding.UTF8.GetBytes(String.Format(_templateData, _boundary, Name, Value));
                _stream.Write(contentData, 0, contentData.Length);
            }
    
            public void AddFile(string Name, string FilePath)
            {
                AddFile(Name, FilePath, "application/octet-stream");
            }
    
            public void AddFile(string Name, string FilePath, string FileType)
            {
                using (FileStream fileStream = new FileStream(FilePath, FileMode.Open))
                {
                    AddFile(Name, FilePath, fileStream, FileType);
                }
            }
    
            public void AddFile(string Name, string FilePath, Stream FileStream)
            {
                AddFile(Name, FilePath, FileStream, "application/octet-stream");
            }
    
            public void AddFile(string Name, string FilePath, Stream FileStream, string FileType)
            {
                FileStream.Seek(0, SeekOrigin.Begin);
                byte[] contentFile = Encoding.UTF8.GetBytes(String.Format(_templateFile, _boundary, Name, FilePath, FileType));
                _stream.Write(contentFile, 0, contentFile.Length);
                FileStream.CopyTo(_stream);
                byte[] _lineFeed = Encoding.UTF8.GetBytes("\r\n");
                _stream.Write(_lineFeed, 0, _lineFeed.Length);
            }
    
            public void Dispose()
            {
                Close();
                GC.SuppressFinalize(this);
            }
    
            public void Close()
            {
                byte[] contentEnd = Encoding.UTF8.GetBytes(String.Format(_templateEnd, _boundary));
                _stream.Write(contentEnd, 0, contentEnd.Length);
            }
    
            private string GetMD5()
            {
                Random randNum = new Random();
                MD5CryptoServiceProvider md5hash = new MD5CryptoServiceProvider();
                byte[] randByte = Encoding.UTF8.GetBytes(randNum.NextDouble().ToString());
                byte[] computeHash = md5hash.ComputeHash(randByte);
                string resultHash = String.Empty;
                foreach (byte currentByte in computeHash)
                {
                    resultHash += currentByte.ToString("x2");
                }
                return resultHash;
            }
        }
    }
    Пытаюсь Загрузить данные на Rghost.ru . Редиректит на другую страницу
    Code:
    public void RGHOST_GET()
            {
    
                string bound = CreateRandomPassword(12);
                textBox1.Enabled = false;
    
                HttpWebResponse webResponse = null;
                HttpWebResponse webResponse777 = null;
    //        
                HttpWebRequest webRequest777 = (HttpWebRequest)WebRequest.Create("http://rghost.net/multiple/upload_host");
    
                webResponse777 = (HttpWebResponse)webRequest777.GetResponse();
    
    
                StreamReader myStreamReader777 = new StreamReader(webResponse777.GetResponseStream(), Encoding.GetEncoding(1251));
    
                //Получаем HTML-код страницы и вытаскиваем из него ссылку на изображение
                string upload_host_data = myStreamReader777.ReadToEnd();
    
    
                Match res_upload_host = Regex.Match(upload_host_data, @"(([a-z0-9\-\.]+)?[a-z0-9\-]+(!?\.[a-z]{2,4}))");
                    
                    string uphost;
                    string aut_tok;
    
                    if (res_upload_host.Success)
                    {
                        uphost = res_upload_host.Groups[0].Value;
                        
                        uph = uphost.Trim();
                     }
                // uph это типа phonon.rghost.com
    
                    Match authenticity_token = Regex.Match(upload_host_data, ":\"(.*?)\"");
    
                
                    if (authenticity_token.Success)
                    {
                        aut_tok = authenticity_token.Groups[0].Value;
                        
                        aut = aut_tok.Trim();
                     }
                    
                string ss=aut.Replace(":","").Trim();
                string sss=ss.Replace("\"","").Trim();
                MessageBox.Show(sss);
                MessageBox.Show(uph);
                webResponse777.Close();
    
                //////////////////////////////// СПЕРВА GET ЗАПРОС /////////////////////////////////////////////
                HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create("http://"+uph+"/files");
    
                webRequest.CookieContainer = cookie;
                string FileName = textBox1.Text.ToString().Trim();
               
    
                webRequest.UserAgent = "Mozila/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MyIE2;";
                webRequest.Host = uph;
                webRequest.Accept = "text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1";
                webRequest.Headers.Add("Accept-Language", "ru");
                webRequest.Headers.Add("Accept-Encoding", "gzip");
                webRequest.Method = "POST";
                webRequest.ContentType = "multipart/form-data; boundary=----------------------------" + bound; 
    
               webRequest.AllowAutoRedirect = false;
    
                string auten = aut;
                
                using (MultiPartForm multiPart = new MultiPartForm(webRequest))
                {
    
                   
                    multiPart.AddData("authenticity_token", sss);
                    multiPart.AddFile("file", FileName);
    
                   
                }
                webRequest.CookieContainer = cookie;
                webResponse = (HttpWebResponse)webRequest.GetResponse();
              //  string tC = webResponse.Headers["Set-Cookie"];
    
                StreamReader myStreamReader = new StreamReader(webResponse.GetResponseStream(), Encoding.GetEncoding(1251));
    
                //Получаем HTML-код страницы и вытаскиваем из него ссылку на изображение
                string txt = myStreamReader.ReadToEnd();
                string imageURL;
    
    
                Match res = Regex.Match(txt, @"http://rghost\.(\w+)/(\d+)");
    
                if (res.Success)
                {
    
                    imageURL = res.Groups[1].Value;
                    textBox1.Text = imageURL.ToString();
                    textBox1.Enabled = true;
    
                }
    
                else
                {
                    imageURL = String.Empty;
                    textBox1.Text = "ERROR!!";
                    textBox1.Enabled = true;
                }
                webResponse.Close();
    
            }
    зы Извиняюсь за индийский код)
     
  16. TweakeR

    TweakeR Member

    Joined:
    6 Feb 2006
    Messages:
    54
    Likes Received:
    8
    Reputations:
    5
    Здравствуйте, как в данном примере использовать кодировку UTF-8 ?
    Code:
                using (var client = new System.Net.WebClient())
                {
                    var values = new System.Collections.Specialized.NameValueCollection();
                    values.Add("user", "*********");
                    values.Add("pass", "*********");
                    client.UploadValues("http://site.ru/s.php", values);
                }
     
  17. inCode

    inCode Member

    Joined:
    20 Jun 2011
    Messages:
    141
    Likes Received:
    22
    Reputations:
    5
    byte[] b1 = Encoding.UTF8.GetString(myString);
     
  18. geforse

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

    Joined:
    2 Mar 2008
    Messages:
    617
    Likes Received:
    290
    Reputations:
    1
    На форме 50 textBox'ов, нужно их заполнить (в цикле).
    Обязательно создавать масив из 50-ти textBox'ов или можно как-то иначе получить к ним доступ ?
     
  19. inCode

    inCode Member

    Joined:
    20 Jun 2011
    Messages:
    141
    Likes Received:
    22
    Reputations:
    5
    Code:
    var controlslist = groupBox1.Controls;
                for (int i = 0; i < controlslist.Count; i++) 
                {
                    controlslist[i].Text = "текст";
                
                
                }
    
    создаешь groupbox запихиваешь в него все текстбоксы и в цыкле заполняешь
     
    1 person likes this.
  20. return

    return New Member

    Joined:
    23 Oct 2010
    Messages:
    125
    Likes Received:
    3
    Reputations:
    1
    Java

    Java. Такой вопрос из области теории: написал я самый обычный сервак, на сокетах, самый обычный функционал сервера это обмен сообщениями. Если написать клиентскую часть под мобилы (например под Android) то клиент и сервер будут взаимодействовать? И будут ли какие то подводные камни? Или это вообще велосипед я пытаюсь сделать? Просто на мобилах еще ни разу не кодил.
     
Loading...