Создание отображения файла в оперативную память - C#
Формулировка задачи:
Нужно создать отображение файла в ОЗУ. Делается так:
И вывести в этот файл результат сортировки рандомного массива. С сортировкой проблем нету.
Вопрос:
1.Можно ли работать с .txt файлом или нужно работать с файлом типа .data?
1.1 Если нужно использовать .data файл, то как его создать? Нужно использовать что то вроде MySql?
2. Как получить доступ к памяти, т.е. вывести результят сортировки, можно пример?
Методы аксесора указаны здесь:
http://msdn.microsoft.com/ru-ru/libr...waccessor.aspx
Данные типа "Char" выводит нормально. Методу "Write" передаю номер позиции для записи, через запятую символ.
А как передать переменную типа "String" если нет такого метода? Ведь мне нужно передавать до миллиона трехзначных чисел. Запись по одному символу, наверное, не лучший вариант. Хотелось бы через "String".
Второстепенный вопрос:
При попытке передать параметр типа "int" - получаются непонятные символы. Скорее всего не та кодировка... Как узнать кодировку?
var mmf = MemoryMappedFile.CreateFromFile(@"c:\file.data", FileMode.Open, "ImgA");
Реализовал вот так:
private void button1_Click(object sender, EventArgs e) { using (var mmf = MemoryMappedFile.CreateFromFile(@"c:\123.txt", FileMode.Open, "ImgA")) { using (var accessor = mmf.CreateViewAccessor()) { /* int i = 666999; accessor.Write(0,i);*/ accessor.Write(0, '2'); accessor.Write(1, '3'); } } // string text = "1234567890"; // System.IO.File.WriteAllText(@"c:\123.txt", text); }
Решение задачи: «Создание отображения файла в оперативную память»
textual
Листинг программы
string s = "helloworld"; var file = MemoryMappedFile.CreateFromFile(@"c:\123.txt", FileMode.Open, Name, s.Length); // последний параметр - размер выделяемой памяти using (var streamwriter = new StreamWriter(file.CreateViewStream())) { streamwriter.WriteLine(s); streamwriter.Close(); } file.Dispose();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д