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


Автор: LuckyCat 11.2.2009, 17:40
Что программа делает:
Есть некий текстовый файл с разделителями ^ и |. Первый обозначает новую строку, второй - разделитель между фразами.

Данные заносятся в двумерный массив из текстового файлика, предварительно разбиваясь. Какие лучше разделители использовать?
Содержимое txt файла:

Код

^hello | Короткий текст
Просто ни о чем
^world | Only
^hoorey | srez
^icq | Lucky


Код

        public void Test3()
        {
            StreamReader sr = new StreamReader(@"D:\txt.txt", Encoding.GetEncoding("windows-1251"));

            string[] strs = null;
            string[] strs1 = null;
            string[,] array1 = null;

            int i = 0;
            while (sr.Peek() > -1)
            {
                i++;                
                string words = sr.ReadToEnd();
                
                strs = words.Split(new Char[] { '^' }, words.Length);
                for (int j = 1; j < strs.Length; j++)
                {
                    strs1 = strs[j].Split(new Char[] { '|' }, strs[j].Length);
                    array1[i][j] = ???
                }
                
            }
            sr.Close();
        }


Как занести данные в двухменрный массив, чтобы получилось примерно так:
Код

string[,] array1 = { 
    { "hello", "Короткий текст\r\nПросто ни о чем" }, 
    { "world", "Only" }, 
    { "horrey", "srez" }, 
    { "icq", "Lucky" } 
};

Автор: Partizan 11.2.2009, 17:56
LuckyCat, для начала неплохо бы память выделить под массив array1 ;)

Автор: mihryak 12.2.2009, 01:41
Код

string[][] array = words.Split(new [] {'^'}, StringSplitOptions.RemoveEmptyEntries).Select(line => line.Split('|').ToArray()).ToArray();

люблю linq smile

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