[C#] Строку разделить на два массива

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by SimBa, 29 Nov 2011.

  1. SimBa

    SimBa Member

    Joined:
    8 Dec 2008
    Messages:
    0
    Likes Received:
    47
    Reputations:
    -11
    Есть у меня строка, в ней содержится прокси и порт с разделителем ":", как мне сделать из него 2 массива данных. один массив - прокси, второй - порт прокси.
    Заранее благодарю.

    PHP:
    127.0.0.1:80
    первый массив
    PHP:
    127.0.0.1
    второй массив
    PHP:
    80
     
  2. Contik

    Contik New Member

    Joined:
    30 Oct 2010
    Messages:
    16
    Likes Received:
    2
    Reputations:
    0
    split :eek:
     
  3. SimBa

    SimBa Member

    Joined:
    8 Dec 2008
    Messages:
    0
    Likes Received:
    47
    Reputations:
    -11
    если со сплитом то заносится в один массив так { прокси, порт, прокси, порт }
    а как разделить порт и прокси в два разных массива?
     
  4. Feonor

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

    Joined:
    23 Jul 2008
    Messages:
    128
    Likes Received:
    52
    Reputations:
    19
    Вот пример с одной строкой
    Code:
                String s = "127.0.0.1:80";
                String sProxy;
                String sPort;
    
                int nPos = s.IndexOf(":");
                if (nPos != -1)
                {
                    sProxy = s.Substring(0, nPos);
                    sPort = s.Substring(nPos+1);
                }
    До массива допилишь сам уж.
     
  5. Feonor

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

    Joined:
    23 Jul 2008
    Messages:
    128
    Likes Received:
    52
    Reputations:
    19
    конкретнее некуда))
    PHP:
            private void button1_Click(object senderSystem.EventArgs e)
            {
                
    Stream myStream null;
                
    OpenFileDialog openFileDialog1 = new OpenFileDialog();

                
    openFileDialog1.InitialDirectory "c:\\";
                
    openFileDialog1.Filter "txt files (*.txt)|*.txt|All files (*.*)|*.*";
                
    openFileDialog1.FilterIndex 2;
                
    openFileDialog1.RestoreDirectory true;

                if (
    openFileDialog1.ShowDialog() == DialogResult.OK)
                {
                    try
                    {
                        
    int nPos 0;
                        List<
    stringsProxy = new List<string>();
                        List<
    stringsPort = new List<string>();
                        
    string line;

                        
    // Читаем построчно
                        
    System.IO.StreamReader file =
                            new 
    System.IO.StreamReader(openFileDialog1.FileName);
                        while ((
    line file.ReadLine()) != null)
                        {
                            
    int nPos line.IndexOf(":");
                            if (
    nPos != -1)
                            {
                                
    sProxy.Add(line.Substring(0nPos));
                                
    sPort.Add(line.Substring(nPos 1));
                            }
                        }
                        
    //после этого цикла будет 2 List'а
                        //ну ты понял какой что содержит =)
                        
    file.Close();
                
                    }
                    catch (
    Exception ex)
                    {
                        
    MessageBox.Show("Error: Could not read file from disk. Original error: " ex.Message);
                    }
                }
            }