Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 2
Регистрация: 07.06.2016
Сообщений: 75

Как сделать универсальный редактор файла?

16.05.2017, 13:37. Показов 1044. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как сделать универсальный редактор файла (Windows Forms)? Чтоб программа считывала и делала запись с определенных смещений в любом файле.
Сами действия в проге нужно чтоб происходили в буфере программы, а после нажатия кнопки Save, чтоб была запись уже в сам файл.
Нужные смещения нужно занести в файл .xml и при необходимости смещения можно изменить открыв этот xml в блокноте.

То есть в программе нужно чтоб было 4 кнопки:
Нужны переключатели(radiobutton) "character1" и "character2"
Кнопка "open" открывает любой файл
Кнопка "Save" сохраняет все что надо из буфера в открытый программой файл

Кнопка "5-3bytes": когда выбран "character1" переключатель при нажатии на кнопку "5-3bytes" нужно чтоб, прописывались значение 0xFF FF FF в одни 5 разных смещений по 3 байта в hex перевернутом, а когда выбран "character2" переключатель тоже самое только в другие 5 разных смещений по 3 байта. (Адреса смещений для переключателей нужно чтоб были в файле .xml)

Кнопка "5-1byte": когда выбран "character1" переключатель при нажатии на кнопку "5-1byte" нужно чтоб, прописывалось значение 0xFF в одни 5 разных смещений по 1 байту, а когда выбран "character2" переключатель тоже самое только в другие 5 разных смещений. (Адреса смещений нужно чтоб были в файле .xml)

Приблизительно было бы вот так:
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.05.2017, 13:37
Ответы с готовыми решениями:

Как при открытии этого файла сделать что бы он загружал мой редактор и с текстом находящейся в этом файле?
Помогите: 1) Сделал текстовой редактор. 2) Сделал свой тип файла с расширением например 'ss'. Вопрос: Как при открытии этого файла...

Универсальный метод, как сделать фабрику объектов?
собственно сначала код public interface IMyClass { } public class MyClass : IMyClass ...

Как сделать, чтобы метод возвращал универсальный тип объекта
Помогите!!! Может вообще все по другому сделать надо, но идея такая: public ObjectSet<??????> TypeResults(Type typeResults,...

6
-17 / 1 / 0
Регистрация: 14.05.2017
Сообщений: 38
16.05.2017, 18:59
Совмещение нескольких полезных функкции для универсальности или как переключение режимов
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,898
Записей в блоге: 1
16.05.2017, 20:49
Razi82, в чем именно сложность?
0
0 / 0 / 2
Регистрация: 07.06.2016
Сообщений: 75
16.05.2017, 21:54  [ТС]
Цитата Сообщение от OwenGlendower Посмотреть сообщение
в чем именно сложность?
Кнопки Open и Save могу сам написать. А сложность в том чтоб прописать вот такую кнопку:
Кнопка "5-3bytes": когда выбран "character1" переключатель при нажатии на кнопку "5-3bytes" нужно чтоб, прописывались значение 0xFF FF FF в одни 5 разных смещений по 3 байта в hex перевернутом, а когда выбран "character2" переключатель тоже самое только в другие 5 разных смещений по 3 байта. (Адреса смещений для переключателей нужно чтоб были в файле .xml)
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,898
Записей в блоге: 1
16.05.2017, 22:02
Razi82, если исходить из того что по кнопке Open идет загрузка в массив byte[] buffer, а смещения хранятся в массивах int[] offsets1/offsets2, то как-то так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void button5_3bytes_click(object sender, EventArgs e)
{
    if (radioButton1.Checked)
    {
        foreach (int offset in offsets1)
        {
            buffer[offset] = 0xFF;
            buffer[offset+1] = 0xFF;
            buffer[offset+2] = 0xFF;
        }
    }
    else if (radioButton2.Checked)
    {
        foreach (int offset in offsets2)
        {
            buffer[offset] = 0xFF;
            buffer[offset+1] = 0xFF;
            buffer[offset+2] = 0xFF;
        }
    }
}
Цитата Сообщение от Razi82 Посмотреть сообщение
в hex перевернутом
Что это такое? (учитывая что байты у тебя одинаковые)
1
0 / 0 / 2
Регистрация: 07.06.2016
Сообщений: 75
16.05.2017, 22:21  [ТС]
Цитата Сообщение от OwenGlendower Посмотреть сообщение
Что это такое? (учитывая что байты у тебя одинаковые)
Например в десятичном будет: 1000; в Hex будет: 00 03 E8; в перевернутом Hex будет E8 03 00. В файлах часто идет перевернутый порядок байт. Перевернутый Hex упомянул на всякий случай, если надо будет вместо 0xFFFFFF ставить другое число.
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,898
Записей в блоге: 1
16.05.2017, 22:29
Razi82, ясно. Немного модифицируем пример значит
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
byte[] bytes = {0x00, 0x03, 0xE8};
 
void button5_3bytes_click(object sender, EventArgs e)
{
    if (radioButton1.Checked)
    {
        foreach (int offset in offsets1)
        {
            buffer[offset] = bytes[2];
            buffer[offset+1] = bytes[1];
            buffer[offset+2] = bytes[0];
        }
    }
    else if (radioButton2.Checked)
    {
        foreach (int offset in offsets2)
        {
            buffer[offset] = bytes[0];
            buffer[offset+1] = bytes[1];
            buffer[offset+2] = bytes[2];
        }
    }
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.05.2017, 22:29
Помогаю со студенческими работами здесь

Как сделать универсальный жесткий диск с Windows 7, который запускался бы на любом ПК?
Есть лицензионная операционная система Windows 7 Pro Box. Возможно ли сделать переносной жесткий диск и подключать его к различным...

Как сделать один универсальный класс-контейнер а-ля std::tuple из двух различных классов?
Добрый день. Есть работающий код: #include <iostream> #include <map> enum Index { First, Second, ...

Универсальный (!) редактор ini для юзера (!) для всех проектов
Он должен показывать юзеру не section/key/value, a ;комменты, точнее их описательные части типа strComment = ";" &...

Как самому сделать визуальный редактор?
как самому сделать визуальный редактор как в wordpress, joomla!. Чтобы не код HTML выводился а картинки так как они будут выглядеть.

Как сделать простенький текстовый редактор?
Надо сделать чтобы текст. файл открывался и выводился на экран и непосредственно этот выведенный текст редактировался и сохранялся....


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru