Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
 Аватар для belalugoci
475 / 294 / 29
Регистрация: 01.06.2018
Сообщений: 3,676

"Список" разнородных данных

13.12.2023, 18:34. Показов 1659. Ответов 31
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер, чатлане
Пытаюсь придумать некий механизм хранения данных и у меня сильно не хватает скилла на такое. Попробую объяснить своими словами, а там вопросы если что задавайте, кода никакого нет, поэтому показать нечего.
В общем нужна какая-то структура данных, которая позволяет хранить разнородные ячейки, например byte, word, dword и соответственно обрабатывая такую структуру я могу делать case по типу данных и понимать с чем я столкнулся. Условно это одномерный массив или список:
{byte}, {byte}, {word}, {dword}, {byte} и т.д.
Причем, скорее всего, у меня даже будет так:
{byte, word}, {dword, byte, dword, dword}, {word}, {byte, dword}, {byte} и т.д.
По идее реализация должна быть благосклонная к применению разных типов данных.
После того как данные записаны, их нужно будет как-то читать, например foreach, и тут я совсем не понимаю как этот самый foreach будет понимать с каким перечнем данных работает если они бывают какие угодно.
Возможно это выглядит так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
class A
{}
class B
{}
class C
{}
class D
{
    A a;
    B b;
    C c;
}
List<D> d;
но можно ли как-то избежать этого и сделать какой-то
C#
1
List<T> d;
где можно делать
C#
1
2
3
d.Add(a);
d.Add(b);
d.Add(c);
?
В общем если кто-то понял мой сумбур, welcome.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.12.2023, 18:34
Ответы с готовыми решениями:

Массив разнородных данных
Доброго всем всем времени суток! Требуется создать &quot;штуку&quot; в которой есть несколько заранее известных столбцов однородных данных, но при...

Как правильно передать несколько разнородных данных из одной формы в другую?
На форме MainForm много элементов управления (установка цвета, комбобоксы, numUpDown и другие), значения которых я хочу передать в форму...

Сортировка разнородных данных
Есть столбец &quot;Артикул&quot;, все было бы великолепно, но в ячейках присутствуют записи нескольких типов (например): GD0287; 7478-DA; ...

31
Эксперт .NET
 Аватар для Wolfdp
3790 / 1767 / 371
Регистрация: 15.06.2012
Сообщений: 6,543
Записей в блоге: 3
19.12.2023, 09:46
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от belalugoci Посмотреть сообщение
результат обработки byte[]
Да итить, узнать бы предметную область задумки. Считываются из файла предзаписаные команды? Эти команды вами же формируются? Записать их обратно нужно будет? Их много?

Просто хранить в файле... можно, но хотелось бы понимать предметную область. Считать десять команд, что-то сделать, и скинуть их обратно на файл после редактирования -- можно и весь файл перезаписывать, если там условные 10Мб. Если уже 10Гб -- сами понимаете, что ОЗУ не наберется столько. Да и лопатить весь файл, когда нужно заменить одну запись -- так себе идея.
0
2293 / 1609 / 400
Регистрация: 26.06.2017
Сообщений: 4,773
Записей в блоге: 1
19.12.2023, 09:51
Цитата Сообщение от belalugoci Посмотреть сообщение
byte, word, dword
Уж не записи ли реестра винды?
0
 Аватар для belalugoci
475 / 294 / 29
Регистрация: 01.06.2018
Сообщений: 3,676
19.12.2023, 10:57  [ТС]
Цитата Сообщение от Uswer Посмотреть сообщение
Сегодня у вас 10 записей, завтра 20, а через год 100500
нет, зачем придумывать и тянуть в разговор откровенную чушь?

Цитата Сообщение от Uswer Посмотреть сообщение
возьмите тот же Access
Вы сейчас предлагаете условной программе MSPaint пользоваться базами Access.

Цитата Сообщение от Uswer Посмотреть сообщение
Упорядоченное хранение данных
А почему любой другой подход будет неупорядоченным?

Цитата Сообщение от Uswer Посмотреть сообщение
с быстрым, хорошо настраиваемым доступом к данным
Это тот случай когда накладные расходы на работу с СУБД будут использоваться только во вред.

Цитата Сообщение от Uswer Посмотреть сообщение
Практически любые операции с данными могут проводится адресно, т.е. не затрагивая другие записи
Когда я читаю s[i] то как это влияет на m[j]?

Цитата Сообщение от Uswer Посмотреть сообщение
Плюс в какой-то момент времени хранилище, т.е. базу, можно будет отделить от программы, которая работает с данными из неё
В этой программе нет хранилища совсем, поэтому и отделять нечего.

Цитата Сообщение от Uswer Посмотреть сообщение
Сделать многопользовательский доступ к данным
Зачем?

Цитата Сообщение от Uswer Посмотреть сообщение
Короче дело ваше чего вы там с байтами и массивами будете делать.
Это как раз понятно. Непонятно одно - зачем вы нагородили всю эту городушку про СУБД?

Цитата Сообщение от Wolfdp Посмотреть сообщение
Да итить, узнать бы предметную область задумки
Ну я написал уже что это условно архиватор, то есть прочитать файл и создать выходной файл на основании обработки входного.

Цитата Сообщение от Wolfdp Посмотреть сообщение
Считываются из файла предзаписаные команды?
Нет.

Цитата Сообщение от Wolfdp Посмотреть сообщение
Эти команды вами же формируются?
Команды статичные, программируются единожды в VS C# и исполняются.

Цитата Сообщение от Wolfdp Посмотреть сообщение
Записать их обратно нужно будет?
Нет, это просто надор if, for, присвоений и т.п. команд обычного C#, их не нужно ни читать ни писать. Читаются байты из файла, пишутся байты в файл.

Цитата Сообщение от Wolfdp Посмотреть сообщение
Их много?
Данных в 99% случаев будет не более 64Кб, так как это для ретро железа.

Цитата Сообщение от Wolfdp Посмотреть сообщение
Просто хранить в файле... можно, но хотелось бы понимать предметную область
А на что это повлияет?
Данные => обработчик => данные
Пусть обработчик будет RLE алгоритмом, не вижу разницы.

Цитата Сообщение от Wolfdp Посмотреть сообщение
Считать десять команд
Зачем считать?

Цитата Сообщение от Wolfdp Посмотреть сообщение
после редактирования
Редактирование не подразумевается, входные данные readonly.

Цитата Сообщение от Wolfdp Посмотреть сообщение
можно и весь файл перезаписывать
можно весь, можно частями, можно побайтно, это не имеет значения.

Цитата Сообщение от Wolfdp Посмотреть сообщение
Если уже 10Гб -- сами понимаете, что ОЗУ не наберется столько
Ну у мня есть самописные программы, им хоть 500 петабайт скармливай никаких проблем не будет. Не вижу причины концентрировать внимание на этом вопросе.

Цитата Сообщение от Wolfdp Посмотреть сообщение
Да и лопатить весь файл, когда нужно заменить одну запись -- так себе идея
Ну задача именно в том чтобы лопатить файл, и никаких замен в читаемом файле производиться не будет. Будет новый файл созданный на основе первого файла.

Я так и не понял зачем вы в какие-то дебри полезли, ну представьте что это WinZip.

Цитата Сообщение от Uswer Посмотреть сообщение
Уж не записи ли реестра винды?
Нет.
0
 Аватар для iLinks
800 / 458 / 237
Регистрация: 03.01.2017
Сообщений: 1,342
19.12.2023, 10:59
Цитата Сообщение от belalugoci Посмотреть сообщение
чтением делу не помочь.
Вы серьезно? Вам скинули готовую реализацию, вы не смогли понять что там к чему. Я вам подсказал что стоит почитать про конкретный паттерн и вы бы поняли что там и для чего. Но раз не помочь, то не помочь.
1
 Аватар для belalugoci
475 / 294 / 29
Регистрация: 01.06.2018
Сообщений: 3,676
19.12.2023, 11:19  [ТС]
Цитата Сообщение от iLinks Посмотреть сообщение
Вы серьезно?
вполне - сколько не читай книгу на китайском, но без понимания языка не понять смысла написанного.

Цитата Сообщение от iLinks Посмотреть сообщение
Вам скинули готовую реализацию, вы не смогли понять что там к чему
Такое бывает.

Цитата Сообщение от iLinks Посмотреть сообщение
Я вам подсказал что стоит почитать про конкретный паттерн и вы бы поняли что там и для чего
Я уже это сделал и не понял. Почему вы решили что я обязательно должен это понять?

Цитата Сообщение от iLinks Посмотреть сообщение
Но раз не помочь, то не помочь
Все люди разные, в данном случае затраты на изучение до степени понимания несоизмеримо большие чем результат.
0
2293 / 1609 / 400
Регистрация: 26.06.2017
Сообщений: 4,773
Записей в блоге: 1
19.12.2023, 11:21
Цитата Сообщение от belalugoci Посмотреть сообщение
Данных в 99% случаев будет не более 64Кб
Для такого объёма вообще не требуется какая-то дополнительная обработка аля сжатие (архивирование), т.к. накладные расходы будут выше прямой обработки. Даже если предположить, что у вас таких файлов много, то их систематизация решается обычным ZIP-сжатием. Не хотите зиповать руками сделайте это в коде, примеров полно.
belalugoci, вы не хотите указать истинную потребность "некоего механизма хранения данных", что же это ваше право. Ответ вам дали почти в начале темы. Удачи.

Добавлено через 1 минуту
Цитата Сообщение от belalugoci Посмотреть сообщение
Такое бывает.
Вам даже разжевали решение.
0
 Аватар для belalugoci
475 / 294 / 29
Регистрация: 01.06.2018
Сообщений: 3,676
19.12.2023, 11:38  [ТС]
Цитата Сообщение от Uswer Посмотреть сообщение
Для такого объёма вообще не требуется какая-то дополнительная обработка аля сжатие (архивирование)
Взял попкорн

Цитата Сообщение от Uswer Посмотреть сообщение
т.к. накладные расходы будут выше прямой обработки
Просто триллер какой-то, 40 лет 8-битной эпохи бок о бок с сжатием и тут приходит некто и говорит, дуракам, как надо жить.

Цитата Сообщение от Uswer Посмотреть сообщение
Даже если предположить
Лучше не предполагайте, получается плохо.

Цитата Сообщение от Uswer Посмотреть сообщение
то их систематизация решается обычным ZIP-сжатием
А я где-то говорил что это систематизация?

Цитата Сообщение от Uswer Посмотреть сообщение
вы не хотите указать истинную потребность "некоего механизма хранения данных", что же это ваше право. Ответ вам дали почти в начале темы. Удачи.
Да я вроде нигде не заявлял что меня ответ не устроил.

Цитата Сообщение от Uswer Посмотреть сообщение
Вам даже разжевали решение
И я даже написал что наверное может быть скорее всего чуток но что-то понял. Что не отменяет для меня сложности этой темы и не важно жевал там кто-то или нет.

Добавлено через 2 минуты
для всех цитирую:
Сообщение было отмечено belalugoci как решение
14.12.2023
0
Эксперт .NET
 Аватар для Wolfdp
3790 / 1767 / 371
Регистрация: 15.06.2012
Сообщений: 6,543
Записей в блоге: 3
19.12.2023, 12:02

Не по теме:

belalugoci, хвост Хоро, вы физически не можете упаковать ответ в пару предложений, зачем коментировать каждое предложение?



Пока не совсем понял как изначально генерится файл, но смысла загонять в БД 64Кб не вижу. Возможно вместо плясок с байтами стоит посмотреть в сторону десерилизации (тот же json). Файл раздуется, зато можно будет открыть любым блокнотом.

Если это прям "архиватор", который должен тупо сжать данные -- ну, хз. Встроенный zip так уж плох? Ну и обычно работают с фиксированными блоками, а не разной длины. Разве что в входном потоке данных есть какая-то явная цикличность, что позволит оптимизировать объем хранения, но это прям нужно вникать чтобы сказать "да-нет".
0
19.12.2023, 12:11

Не по теме:

Цитата Сообщение от iLinks Посмотреть сообщение
Вы серьезно? Вам скинули готовую реализацию, вы не смогли понять что там к чему. Я вам подсказал что стоит почитать про конкретный паттерн и вы бы поняли что там и для чего.
Мастер обучает новичка:
- Утром включаешь этот рубильник, вечером выключаешь. Понял?
- Не понял.
- Вот рубильник. Когда утром приходишь, переводишь его в верхнее положение. Вечером - возвращаешь в нижнее. Понял?
- Не понял.
- Показываю, запоминай. Утром - вот эту штуку двигаешь вот так, а вечером вот так обратно. Понял?
- Мастер, ты тупой что ли?! Я тебе третий раз говорю - не понял!

0
 Аватар для belalugoci
475 / 294 / 29
Регистрация: 01.06.2018
Сообщений: 3,676
19.12.2023, 12:50  [ТС]
Цитата Сообщение от Wolfdp Посмотреть сообщение
как изначально генерится файл
как угодно, нас это не долно волновать

Цитата Сообщение от Wolfdp Посмотреть сообщение
Возможно вместо плясок с байтами стоит посмотреть в сторону десерилизации (тот же json). Файл раздуется, зато можно будет открыть любым блокнотом.
А есть задача читать его блокнотом? Как часто вы пакуете в ZIP, потом оформляете весь файл как JSON и потом его читаете в блокноте?

Цитата Сообщение от Wolfdp Посмотреть сообщение
Если это прям "архиватор", который должен тупо сжать данные -- ну, хз
архиватор, конвертер, энкодер - не имеет значения.

Цитата Сообщение от Wolfdp Посмотреть сообщение
Встроенный zip так уж плох?
Встроенный куда?

Цитата Сообщение от Wolfdp Посмотреть сообщение
Ну и обычно работают с фиксированными блоками, а не разной длины
Один блок 22 бита, второй 2, третий 7 - не вижу ничего необычного.

Я не могу понять необходимости в конкретизации моей задачи.

Цитата Сообщение от kotelok Посмотреть сообщение
Я тебе третий раз говорю - не понял!
Поддержу товарища, если кому-то нужно говорить трижды и он не понял, то он тупой. Или вас сам факт присутствия тупых людей на планете удивляет?
0
Эксперт .NET
 Аватар для Wolfdp
3790 / 1767 / 371
Регистрация: 15.06.2012
Сообщений: 6,543
Записей в блоге: 3
19.12.2023, 19:05
belalugoci, почитайте про "проблему молотка". В целом, если вы уже сделали, оно работает и не горите желанием переписывать -- диалог чисто теоретический. В целом можно смело закруглится. Есть желание сделать лучше -- без конкретизации вы с большой вероятностью получите решение не подходящее под ваш случай.
0
 Аватар для belalugoci
475 / 294 / 29
Регистрация: 01.06.2018
Сообщений: 3,676
19.12.2023, 19:27  [ТС]
Цитата Сообщение от Wolfdp Посмотреть сообщение
почитайте про "проблему молотка"
спасибо, я отработал в ТП почти 15 лет, из них 6 начальником отдела, только в данном случае он не подходит

Цитата Сообщение от Wolfdp Посмотреть сообщение
если вы уже сделали
нет. когда сделаю - напишу здесь, если это будет возможно

Цитата Сообщение от Wolfdp Посмотреть сообщение
не горите желанием переписывать
я люблю переписывать, но не ради переписывания или чтобы угодить чьему-то восприятию прекрасного.

Цитата Сообщение от Wolfdp Посмотреть сообщение
диалог чисто теоретический
слишком странный он

Цитата Сообщение от Wolfdp Посмотреть сообщение
Есть желание сделать лучше -- без конкретизации вы с большой вероятностью получите решение не подходящее под ваш случай
я же не могу просто написать - мне нужна программа делающая то-то и то-то, мог бы - написал. Тем более это хобби, придумываю всякое, пишу в стол, сам процесс интересует. Могу не писать, а пить водку, не думаю что кому-то есть дело как я трачу свободное время.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.12.2023, 19:27

Консолидация разнородных данных
Доброго времени суток! Возникла небольшая проблема - не могу придумать как сделать нормальную консолидацию таблиц в одну, подозреваю...

Технологии получения данных из нескольких разнородных источников
В сети предприятия на разных серверах в разных каталогах находятся разнообразные источники даных, пусть это - фокспровские DBF таблицы и ...

[Stm32f103+hc-05] Организовать приём и передачу разнородных данных (тип структура)
uart прием структуры, ткните пожалуйста носом как принять структуру данных, ну и соответственно отправить sTime.Hours = 0x20; ...

Загрузка разнородных данных из Excel через DAO(контрол Data)
ситуация следующая: есть столбец в екселе SKV 1 2 3 4R 5B 6

Создание списка разнородных данных, которые включают символьные, числовые и логические векторы
24. Напишите R-программу для создания списка разнородных данных, которые включают символьные, числовые и логические векторы. Распечатайте...


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

Или воспользуйтесь поиском по форуму:
32
Ответ Создать тему
Новые блоги и статьи
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
Вот представьте что вам дали бессмертие.
kumehtar 24.07.2026
Вот представьте что вам дали бессмертие, ничего более не меняя. Вообще ничего, только бессмертие в нынешнем виде. Рады были бы? Что бы вы тут делали всё это время? Никакой пенсии. Никакого нового. . .
сукцессия 41
anaschu 24.07.2026
Численная верификация бифуркации в агентной модели лесной сукцессии: от одного параметра к ансамблю Автор: пользователь @Shumilov_AS | Раздел: Прикладная математика / Численные методы Кратко. . .
сукцессия 40. Ансамблевая кластерная параметризаци, часть 1.
anaschu 24.07.2026
Пр# Сопровождение научной статьи ИИ-ассистентом: подготовка публикации и калибровка агентно-ориентированной модели сукцессии микоризных систем **Полевые заметки о двухнедельной совместной работе**. . .
Теория всего 12. ВГК на планете в стратегической игре "терра"
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики 1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928 Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru