Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Разбивка строки


Автор: derek 5.8.2008, 09:01
Есть большой string hex-кодов разделенная пробелами (например "0000 0064 FC35 002E 005C"). Необходимо добраться до каждого значения, чтобы потом можно было работать. Слышал краем уха что в С# есть специальные методы для обработки строки (split вроде бы), но делал по старинке
Код

private void WorkWithHexString(string hexcode)
        {
          for (int i = 0; i < hexcode.Length; i++)
            {
                
                string currentword="";
                char probel = ' ';
                if (hexcode[i] != probel)
                {
                    currentword += hexcode[i];
                 }
                else
                {
                    richTextBox1.Text = currentword + " ";
                    currentword = "";
               
                 }
             }
        }


компилируется, но не работает. где я ошибся?

буду благодарен если кто покажет ак реализовать это подобное более простыми для шарпа методами

Автор: QryStaL 5.8.2008, 09:09
Код

string input = "0000 0064 FC35 002E 005C";
string[] output = input.Split(' ');

Автор: derek 5.8.2008, 09:16
QryStaL, а из Split можно на выходе только массив получать?
просто для меня это не очень удобно, т.к. я точно не знаю какой длины будет входная строка и сколько там будет элементов. там и все 100 килобайт могут быть. Как с ним потом работать?

Автор: QryStaL 5.8.2008, 09:19
Код

foreach (string str in output)
{

}

Автор: derek 5.8.2008, 09:53
QryStaL, 
 smile  smile  smile 

спасибо большое smile

Автор: derek 6.8.2008, 08:21
народ а как оптимальнее разбирать строку, если интересует разделение просто по количеству значений. например строка
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"

интересует просто разделять строку по 4 символа.

Автор: Partizan 6.8.2008, 10:08
derek, использовать метод Substring

Автор: cru3l 7.8.2008, 08:39
есть такая строка
"0,100,-907,-49,-99,
0,100,-879,-81,-162,
0,100,-847,-112,-224,
0,100,-811,-142,-285,
0,100,-772,-173,-346,"

количество строк заранее неизвестно. необходимо чтобы в результате получилось 5 массивов, каждый из которого фактически представлял бы "столбец" строки
т.е. первый массив содержал бы пять нулей, третий - [-907,-879,-847,-811,-772] 

я что то не соображу как сделать. помогите разбить строку


Автор: Partizan 7.8.2008, 09:01
Код

List<string> col1 = new List<string>();
List<string> col2 = new List<string>();
List<string> col3 = new List<string>();
List<string> col4 = new List<string>();
List<string> col5 = new List<string>();

string str;
...чтение строки из файла...

string[] values = string.Split(',');

if (values.Length != 5)
    throw new Exception("Wrong data format");

col1.Add(values[0]);
col2.Add(values[1]);
col3.Add(values[2]);
col4.Add(values[3]);
col5.Add(values[4]);

Автор: cru3l 7.8.2008, 09:45
Partizan, благодарю!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)