Аватар для Влад.pas
12 / 12 / 4
Регистрация: 30.08.2011
Сообщений: 62

Создание файлов собственного типа

09.03.2012, 08:36. Показов 41898. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Скиньте, пожалуйста, литературу по созданию файлов со своим расширением, как создать своё расширение (например: file.abcdefg) или др.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.03.2012, 08:36
Ответы с готовыми решениями:

Передача параметра собственного типа потоку
Потоку можно передавать один параметр типа Object. Это работает если тебе нужно передать переменную или строчку, но что делать если я хочу...

Как создать массив объектов собственного типа
Как создать массив, в котором в одном элементу arr будут хранится данные собственного типа name(string), ID(int), song(string)

Как посчитать Мах и Avg для собственного типа?
var composlugy = new { new {LName = "Товт", address = "raz", date = "10.10.2015", poslyga = "gaz", sum = 100}, new {LName =...

10
 Аватар для Димон_
136 / 104 / 9
Регистрация: 30.01.2011
Сообщений: 699
09.03.2012, 09:35
Расширение?!
Своим расширением будет любой файл, который запишешь по собственному алгоритму(к примеру сохранение в батник, сначала свой заголовок, потом контент и та далее)
Ну и сохраняй его с другим расширением в имени.
1
 Аватар для daruwanov
77 / 58 / 8
Регистрация: 10.03.2011
Сообщений: 354
09.03.2012, 15:48
просто сохранить его с расширение абракадабра. Это если вам нужно что потом именно это расширение открывалось вашей программой.... то тут нужно немного дописать кода
1
 Аватар для DimanRu
721 / 712 / 168
Регистрация: 15.06.2011
Сообщений: 1,704
09.03.2012, 17:04
Создай файл file.blablabla и попробуй в него записывать и читать, впринципе вообще ничего не измениться! а если ты хочешь что-бы никто другой читать их не мог - тут ттебе правильно ответили - файл должен быть записан по твоему алгоритму.

Вот куски кода:
C#
1
2
3
4
5
6
7
8
            
using (StreamReader str = new StreamReader(@"c:\file.blablabla", Encoding.Default)) //Прочитали файл с расширением blablabla
{
   MessageBox.Show(str.ReadLine());
}
   
 
File.Create(@"c:\myFile.blablabla"); //Создали файл с расширением blablabla
2
 Аватар для irineyxxx
151 / 53 / 11
Регистрация: 18.09.2011
Сообщений: 730
09.03.2012, 19:33
Лучший ответ Сообщение было отмечено как решение

Решение

То что выше, хоть даже будет file.blablabla, любой пользователь откроет данный файл через текстовый редактор, к примеру блокнот и вычитает все, что там внутри. Я думаю - это не то, что нужно по данной теме.

Добавлено через 2 минуты
Самым простым способом, я думаю - это саморучное кодирование и считывание строк, чтобы когда сохраняла данные - была кодировка, а когда читала - декодировка и все. Вот вам и ваш файл собственного типа, так -как открыв данный файл через блокнот - он ведь закодирован. Значит будет типа того: afW232KjsdkZ2900sdDSxc***|||**ds343wwWoO OPZ_^%#OSA
4
Эксперт .NET
 Аватар для Casper-SC
4432 / 2092 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
09.03.2012, 20:04
Лучший ответ Сообщение было отмечено как решение

Решение

Попробуй так создать свой формат, блокнотом точно не прочесть будет:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
using System;
using System.Collections.Generic;
using System.IO;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string file = Path.Combine(Environment.GetFolderPath(
                Environment.SpecialFolder.DesktopDirectory), "testFile.rgzs");
 
            List<Person> persons = new List<Person>()
            {
                new Person(23u, "Андрей"),
                new Person(24u, "Сергей"),
                new Person(56u, "Алексей"),
                new Person(19u, "Дмитрий"),
            };
 
            Person.Save(file, persons);
 
            List<Person> loadedPersons = Person.Load(file);
            Console.WriteLine("Выводим загруженные из файла данные:");
            foreach (Person person in loadedPersons)
            {
                Console.WriteLine(person);
            }
 
            Console.ReadKey();
        }
    }
}
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
    public class Person
    {
        uint Age { get; set; }
        string Name { get; set; }
 
        public Person(uint age, string name)
        {
            this.Age = age;
            this.Name = name;
        }
 
        public Person() 
            : this(0u, string.Empty)
        {
        }
 
        public override string ToString()
        {
            return string.Format("Имя: {0}\tВозраст: {1}", Name, Age);
        }
 
        public static void Save(string path, IList<Person> persons)
        {
            using (FileStream fs = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None))
            using (BinaryWriter binWriter = new BinaryWriter(fs))
            {
                binWriter.Write(persons.Count); //(Int32) записываем кол-во элементов
                for (int i = 0; i < persons.Count; i++)
                {
                    binWriter.Write(persons[i].Age);  //(UInt32)
                    binWriter.Write(persons[i].Name); //(string)
                }
            }
        }
 
        public static List<Person> Load(string path)
        {
            List<Person> persons = null;
            using (FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read))
            using (BinaryReader binReader = new BinaryReader(fs))
            {
                int quantity = binReader.ReadInt32();
                persons = new List<Person>(quantity);
                for (int i = 0; i < quantity; i++)
                {
                    uint age = binReader.ReadUInt32();
                    string name = binReader.ReadString();
 
                    persons.Add(new Person(age, name));
                }
            }
            return persons;
        }
    }
3
Почетный модератор
 Аватар для Памирыч
23246 / 9158 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
09.03.2012, 20:21
Лучший ответ Сообщение было отмечено как решение

Решение

А кто вообще сказал, что файл должен быть зашифрован?
Автор скорее всего имеет ввиду свой тип файлов. И в этом файле будет храниться не галимый текст, а какая-то бинарная (или пусть даже текстовая) структура. И эти файлы должны использоваться только конкретной своей программой, например, группа настроек для какого-то объекта.

Конкретно книг по этой тематике я не встречал, да и вряд ли кому то придет в голову описывать задачу, которая решается каждым программистом индивидуально и под свои нужды.
3
 Аватар для Димон_
136 / 104 / 9
Регистрация: 30.01.2011
Сообщений: 699
09.03.2012, 21:07
Памирыч, Полностью согласен.
Свой формат - это просто буковки после последней точки в названии файла.
А вот способ его прочтения и будет индивидуальным...тут уже либо в сторону кодирования\шифрования информации или в сторону разработки своей структуры, типо HTML(XML)
1
 Аватар для Влад.pas
12 / 12 / 4
Регистрация: 30.08.2011
Сообщений: 62
15.03.2012, 17:26  [ТС]
Димон_, Памирыч, Casper-SC, daruwanov, DimanRu, irineyxxx,
Спасибо всем большое за ответы! Особенно было полезно сообщение:
Цитата Сообщение от Димон_ Посмотреть сообщение
Свой формат - это просто буковки после последней точки в названии файла.
А вот способ его прочтения и будет индивидуальным...тут уже либо в сторону кодирования\шифрования информации или в сторону разработки своей структуры, типо HTML(XML)
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6100 / 4956 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
15.03.2012, 20:53
Вроде можно тупо XORировать и получить нормально зашифрованный текст (на дельфи я такое делал).
1
9 / 9 / 3
Регистрация: 08.07.2010
Сообщений: 70
15.03.2012, 21:53
Вопрос актуален.
В Visual C++ при создании проекта сразу указываешь с файлами какого типа ассоциируется проект. И соответственно, при нажатии мышью на сохраненный файл вызывается программа.
На Visual C# непонятно как сделать то же самое. Как ассоциировать тип файлов, которые сохраняю с созданным проектом?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.03.2012, 21:53
Помогаю со студенческими работами здесь

Описать класс – наследник коллекции элементов собственного типа
Описать класс – наследник коллекции элементов собственного типа. Заполнить коллекцию пятью произвольными элементами через конструкторы...

Создание собственного zedgraph
Молодые, люди!!! Помогите, пожалуйста, с решением такой задачи! Я знаю, что графика здесь рассматривалась уже очень много раз, но ни в...

Создание собственного конструктора формы
Доброго времени. Столкнулся с тем что приходится много копировать один и тот же код с небольшими изменениями для новых форм. Задался...

Создание файла собственного формата(Работа с файлами)
Здравствуйте, я только начинаю разбираться в WinForm, поэтому прошу за тупые вопросы не кидаться помидорами) В общем, задание такое, как...

Создание собственного класса и метода для вычисления выражения
Добрый вечер. Есть программа, её нужно реализовать через метод и собственный класс. Помогите пожалуйста. Вот задание using System; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

Новые блоги и статьи
management on GitLab and repository management in Visual Studio code
jigi33 27.04.2025
- repo management on GitLab - CI/ CD in GitLab - VCS repository management in Visual Studio code (see attachments)
Kanban или Scrum - что выбрать?
EggHead 27.04.2025
Kanban и Scrum — уже много лет удерживают лидирующие позиции среди гибких подходов. Руководители проектов и команды разработчиков то и дело сталкиваются с дилеммой: какой из этих двух методов выбрать. . .
Кастомные Middleware на C# в ASP.NET Core
UnmanagedCoder 27.04.2025
Разработка веб-приложений сегодня мало напоминает монолитное программирование прошлых лет. На смену громоздким блокам кода пришла модульная архитектура, где каждый компонент выполняет строго. . .
Анализ и линтинг кода JavaScript: ESLint, Prettier и JSHint
run.dev 26.04.2025
JavaScript прошёл долгий путь от простого языка для анимации веб-страниц до основы современной веб-разработки. С ростом сложности приложений, увеличением кодовых баз и масштабированием команд. . .
Паттерны в Python: Singleton, Factory и Observer
py-thonny 26.04.2025
Паттерны проектирования — это проверенные временем решения типовых проблем разработки программного обеспечения. Их история берёт начало с книги "Приёмы объектно-ориентированного проектирования. . . .
Исключения в C#: Stack Overflow, Access Violation и Out of memory
stackOverflow 26.04.2025
Исключения в C# — это не только механизм оповещения о проблемах, а целое искусство управления потоком выполнения программы в экстремальных ситуациях. Обычное исключение, например,. . .
Логирование в C# ASP.NET Core с помощью Serilog, ElasticSearch, Kibana
stackOverflow 25.04.2025
Помните те времена, когда для анализа проблемы приходилось подключаться к серверу, искать нужный лог-файл среди десятков других и вручную фильтровать тысячи строк в поисках ошибки? К счастью, эти дни. . .
Структура "железный OnKeyUp" вместо антидребезга. Полностью асинхронный счётчик.
Hrethgir 25.04.2025
Программа для симуляции схемы - Logisim Evolution В общем какое-то время отвлёкся, так было надо, теперь когда запилю это на verilog и FPGA , досоставлю заявку в ФИПС на полезную модель - не готов. . .
Автоматизация Amazon Web Services (AWS) с Boto3 в Python
py-thonny 25.04.2025
Облачные вычисления стали неотъемлемой частью современной ИТ-инфраструктуры, а Amazon Web Services (AWS) занимает лидирующие позиции среди провайдеров облачных услуг. Управление многочисленными. . .
Apache Kafka vs RabbitMQ в микросервисной архитектуре
ArchitectMsa 25.04.2025
Современная разработка ПО всё чаще склоняется к микросервисной архитектуре — подходу, при котором приложение разбивается на множество небольших, автономных сервисов. В этой распределённой среде. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru