Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Матрицу записать в файл, потом считать

70K
21 февраля 2012 года
zigler
15 / / 17.12.2011
Доброго времени суток!

Нужно записать матрицу в файл и затем считать ее из файла в первоначальном виде.
Не подскажете, как сделять это быстрее и надежнее? Язык С#.
Вместо файла можно использовать БД, но опять же мороки с ними много, файлы как-то ближе)))

Спасибо за любую помощь.
10K
21 февраля 2012 года
Cybernetic
106 / / 22.07.2009
Предлагаю взглянуть на классы BinaryReader/BinaryWriter. Они позволяют писать в файл информацию как есть. Пример записи: записываешь кол-во строк, записываешь кол-во столбцов, и дальше идешь построчно, последовательно записывая каждый элемент. При считывании сначала узнаешь габариты матрицы, а потом последовательно считываешь ее данные.

Важно только знать типы данных, в которых хранились элементы матрицы
385
21 февраля 2012 года
SomewherSomehow
477 / / 25.07.2004
Matrix has you!!!

Что за матрица, какие там данные? Может в каждой ячейке xml, а может картинка, а может текст, а может число, а может видео (а может быть ворона ах-ха-ха-ха-ха-ха-ха, а может быть собака, ах-ха-ха-ха-ха-ха-ха, а может это дворник злой?...)
Как понять что матрица та же самая? Она куда-то выводится? Сравнивается с предыдущей? Куда выводится, как сравнивается?
Матрица изменяемая или нет? Типы данных меняются или нет?
Уточняйте вопрос!
47K
22 февраля 2012 года
Kawaii
29 / / 13.09.2009
Как вариант - построчная запись массива в архив, элементы массива в строке разделять "\t", в конце строки "\n" и так до конца массива.

А при чтении используя Regex.Split и "\n" получать массив строк. Точно так же с "\t" получать массив элементов из строки. Зная кол-во строк и элементов в строке создать и заполнить 2d массив :)
67K
24 марта 2012 года
NoXCode
64 / / 11.03.2012
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;


namespace MatrixApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            int[,] matrix = new int[8, 9] { { 1, 2, 4, 6, 2, 3, 9, 7, 4 },
                                            { 6, 9, 7, 1, 5, 4, 7, 8, 3 },
                                            { 8, 1, 5, 2, 4, 8, 3, 9, 7 },
                                            { 2, 9, 1, 1, 6, 5, 4, 3, 2 },
                                            { 6, 9, 7, 1, 5, 4, 7, 8, 3 },
                                            { 8, 1, 5, 2, 4, 8, 3, 9, 7 },
                                            { 2, 9, 1, 1, 6, 5, 4, 3, 2 },
                                            { 2, 9, 1, 1, 6, 5, 4, 3, 2 } };

            using (StreamWriter stream = new StreamWriter("d:\\matrix.txt"))
            {
                for (int i = 0; i < 8; i++)
                {
                    for (int k = 0; k < 9; k++)
                       stream.Write("{0} ", matrix[i, k]);
                    stream.WriteLine();
                }
            }

            using (StreamReader stream = new StreamReader("d:\\matrix.txt"))
            {
                while (stream.Peek() >= 0)
                {
                    string line = stream.ReadLine();
                    string[] tokens = line.Split(new Char[] { ' ' });
                   
                    int[] values = new int[9];
                    for (int i = 0; tokens[i] != ""; i++)
                        Int32.TryParse(tokens[i], out values[i]);
                   
                    for (int i = 0; i < 9; i++)
                         Console.Write("{0} ", values[i]);
                    Console.WriteLine();
                }
            }

            Console.Read();
        }
    }
}
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог