0 / 0 / 0
Регистрация: 25.01.2011
Сообщений: 7
|
|||||||||||
1 | |||||||||||
Типизированный файл с разной структурой25.01.2011, 22:24. Показов 2123. Ответов 18
Метки нет (Все метки)
Привет всем.
Нужно решить проблему с загрузкой типизированного файла который имеет несколько разных структур.
Примерно:
и работать с этими страницами с приминением, допустим: combobox для выбора уже загруженной структуры которая выдаст в listview все 100 значений с именем id, и при выборе определенного, его записи вывести в edit1..edit.N
0
|
25.01.2011, 22:24 | |
Ответы с готовыми решениями:
18
Дан типизированный файл целых чисел. Переписать содержимое файла в новый типизированный файл Типизированный файл Типизированный файл Типизированный файл |
3218 / 2361 / 540
Регистрация: 11.09.2009
Сообщений: 8,604
|
|
26.01.2011, 02:31 | 2 |
Nikolaybar, у вас структуры практически идентичны, так что можно привести структуры к единообразной форме, дополнив разницу пустыми полями, а для идентификации добавить в структуру запись "тип структуры", по которой и определять, какие поля значимые.
Как вариант, записью "тип структуры" может быть массив меток "поле используется/не используется".
0
|
47 / 47 / 2
Регистрация: 21.01.2011
Сообщений: 151
|
|
26.01.2011, 06:21 | 3 |
Либо первое, либо второе, но не одновременно.
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
26.01.2011, 07:20 | 4 |
Ну что ж сделать, если круг у него треугольный, а нужен квадратный? Только объяснить терминологию, другого выхода не вижу.
0
|
0 / 0 / 0
Регистрация: 25.01.2011
Сообщений: 7
|
|
26.01.2011, 10:38 [ТС] | 5 |
Очень остроумно на счет квадрато-треугольников.
Наверно я плохо объяснил суть. Я привел всего две различные структуры, но суть такова: первые 4-ыре байта типа integer указано количество элементов с первой структурой, после сразу же идет первая структура N-ое количество раз котрое указано в первых 4-ырех байтах, сразу же после последнего элемента, идет также 4-ыре байта с количеством следующих элементов с другой структурой. А структуры нельзя привести к одной, так как в одной может быть 2-е записи, а в другой 250, и этих различных структур более 50 штук
0
|
47 / 47 / 2
Регистрация: 21.01.2011
Сообщений: 151
|
|
26.01.2011, 10:41 | 6 |
Так вам и говорят, что работать с таким файлом надо НЕ через типизированный файл.
Открыли файл, прочитали 4 байта, прочитали первые N структур и так далее.
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
26.01.2011, 10:44 | 7 |
Типизированный файл не может быть связан с двумя типами одновременно. А ты явно хотел из одного слепить другое, а получил вовсе третье: и не типизированный файл и не не типизированный, а просто полпроекта.
Добавлено через 2 минуты Тогда тебе нужен не типизированный файл.
1
|
0 / 0 / 0
Регистрация: 25.01.2011
Сообщений: 7
|
|
26.01.2011, 10:49 [ТС] | 8 |
всетаки вы запутали вы меня, а как называть такой файл?
В котором находиться 100 различных структур, наподобие нескольких баз данныз слеплены воедино, но все они взаимосвязаны, например: машина, номер машины, цвет. - это первая структура. владелец, ид его машины. - вторая структура. допустим сын владельца, его рост, возраст, увличение,характер,цвет волос бла бла. - 3-етья структура. номер дома в котором живет сын, гараж, номер машины в этом гараже. - 20атая структура. и мне надо их отредактировать-добавлять записи, на счет именно марки,отца и сына, это был образный пример Добавлено через 2 минуты просто получилось как, я и расчитывал что это будет нетипизированный файл, но я задал вопрос человеку, который знал как открывать этот файл, не дав ответа, он указал на мою ошибку в слове нетипизированный, и заявил, что этот файл типизированный
0
|
47 / 47 / 2
Регистрация: 21.01.2011
Сообщений: 151
|
|
26.01.2011, 10:57 | 9 |
Бинарный, двоичный, нетипизированный - как угодно.
Видимо, он имел ввиду другое. Это не типизированный файл в смысле Паскаля/Delphi. Это можно рассматривать как типизированный файл в том смысле, что в файле лежит набор записей друг за другом. Добавлено через 1 минуту P.S. Ты сказал
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|||||||||||
26.01.2011, 11:04 | 10 | ||||||||||
Типизированный файл - это только
0
|
0 / 0 / 0
Регистрация: 25.01.2011
Сообщений: 7
|
|
26.01.2011, 11:08 [ТС] | 11 |
Проблема в его загрузке, как его открыть, тоетсть первые 4-ыре байта типа integer и это количество раз загрузить структуру, после опять получить количество структур и также загружать уже другой. Сделать наподобие редактора каждой структуры, точнее той записи по структуре.
В combobox будет список загруженых, можно называть это как каждая новая структура это новый лист. пре выборе листа, показывается весь список элементов листа в listview, и при выборе определенного элемента из listview выводились бы данные для редактирования содержания этого элемента. Просто я нигде ненашел примера именно такого типа файлов. А этот файл не один, имеется полностью разные файлы с разной структурой, но понять бы как его загрузить и редактировать его элементы
0
|
47 / 47 / 2
Регистрация: 21.01.2011
Сообщений: 151
|
||||||
26.01.2011, 11:16 | 12 | |||||
Так или так:
1
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|||||||||||
26.01.2011, 11:20 | 13 | ||||||||||
Ну можешь побайтно читать (
0
|
0 / 0 / 0
Регистрация: 25.01.2011
Сообщений: 7
|
||||||
26.01.2011, 11:28 [ТС] | 14 | |||||
Не побайтно будет очнь долго, и да, это извращение. а на счет варианта повыше, попробую, а как структуру(запись указывать):
и Name: array[0..63] of Char; как указать чтоб он считывал именно 64 байта
0
|
47 / 47 / 2
Регистрация: 21.01.2011
Сообщений: 151
|
|
26.01.2011, 11:30 | 15 |
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
26.01.2011, 11:36 | 16 |
Подставляй на место d свои переменные-записи (не типы, хотя, в sizeof можно и тип написать).
0
|
0 / 0 / 0
Регистрация: 25.01.2011
Сообщений: 7
|
||||||
26.01.2011, 19:08 [ТС] | 17 | |||||
а не подскажите как в записи задать чтобы считывало 64 байта unicode.
именно фиксированно 64 байта 41 00 5F 00 41 00 31 00 31 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0
|
47 / 47 / 2
Регистрация: 21.01.2011
Сообщений: 151
|
||||||
26.01.2011, 19:11 | 18 | |||||
Unicode-символ WideChar занимает 2 байта. Сколько раз нужно взять по два байта, чтобы получилось 64? Наверное 32:
1
|
0 / 0 / 0
Регистрация: 25.01.2011
Сообщений: 7
|
|
26.01.2011, 19:31 [ТС] | 19 |
0
|
26.01.2011, 19:31 | |
26.01.2011, 19:31 | |
Помогаю со студенческими работами здесь
19
Типизированный файл Типизированный файл Вывод в типизированный файл Вывод в типизированный файл Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |