Вверх ↑
Этот топик читают: Гость
Ответов: 499
Рейтинг: 1
#1: 2007-04-18 13:36:07 ЛС | профиль | цитата
есть файл с такой структурой:
4 байта - номер секции
4 байта - размер сеции
много байт - секция размером <размер секции>

таких секци может быть много. я читаю первые 4 байта, запоминаю их, потом следующие 4 байта, определяю размер и читаю <размер> байт.
вот только где их хранить для дальнейшего использования? понимаю что в MemoryStream, но я не знаю сколько будет секций. трудность в том, что секция может содержать вложенные подсекции с таким же форматом.
можно запоминать смещения и размеры и обращаться к исходному файлу (предварительно закешировав его в том же MemoryStream), но нужно производить еще также и редактирование секций, есстественно с пересчетом размеров.

пока что делаю так:
читаю 4 байта - через Stream2Hex помещаю в первый StrList
след. 4 байта - во второй StrList
саму секцию - в третий StrList
ну а потом через массив обращаюсь к нужной секции и тд.

вобщем как использовать динамически MemoryStream? то есть создавать столько, сколько затребуется? данные в него идут от StreamCopy, то есть в нижнюю точку, а как по ней организовать ##Add?

ну и в догонку. в элементе Stream2Hex что содержит точка Position после преобразования?
карма: 0

0
Ответов: 9906
Рейтинг: 351
#2: 2007-04-18 13:43:40 ЛС | профиль | цитата
Морочься сам - разбирайся.
Делал для себя конветор некого RAW-формата в удобоваримые
Тоже в ём дофига секций
карма: 9

0
файлы: 1RawRead.rar [5.5KB] [168]
Ответов: 5446
Рейтинг: 323
#3: 2007-04-18 13:44:01 ЛС | профиль | цитата
HikeR, и ты Е.Г.О. ковыряешь?!
По поводу "динамического MemoryStream" -вот


Add(MultiElementEx,10191662,343,238)
{
Mode=1
}
BEGIN_SDK
Add(EditMultiEx,3605741,3,3)
{
WorkCount=#5:##add|8:##select|
VarCount=#6:Stream|
Point(##add)
Point(##select)
link(##add,1346697:doCopy,[(78,9)(78,55)])
link(Stream,1346697:Stream,[(9,142)(160,142)])
}
Add(MemoryStream,1346697,154,49)
{
}
END_SDK

по ##add заносишь данные, потом для чтения вызываешь ##select с номером нужной копии, и пользуешься нижней точкой Stream
карма: 1

0
Ответов: 499
Рейтинг: 1
#4: 2007-04-18 14:24:00 ЛС | профиль | цитата
iarspider, угу, О.Н. самый.
примерно понял. поробую, спасибо.

p.s. а ты сам, или где-то с кем-то? и где? а вот на AG ошиваюсь.
карма: 0

0
Ответов: 5446
Рейтинг: 323
#5: 2007-04-18 14:42:47 ЛС | профиль | цитата
HikeR, я пока играю, сейчас вот коллеге Фантомасу делаю редактор ltx файлов
карма: 1

0
Ответов: 499
Рейтинг: 1
#6: 2007-04-18 15:23:14 ЛС | профиль | цитата
iarspider, а ты глянь вот сюда: http://wiki.ag.ru/S.T.A.L.K.E.R._-_Редакторы
которые StalkEd - мои, могу схемку дать, так как за пару дней их набросал и забросил.

[size=-2]------ Добавлено в 15:15
easyStalkEd - редактор в чистом виде ;)

[size=-2]------ Добавлено в 15:23
Galkov, у вас там в схеме несколько точек входа не найдено, я так понимаю отличаются от базового набора. например, doSelect в ComboBox. это действие doSelectString?
карма: 0

0
Гость
Ответов: 17029
Рейтинг: 0
#7: 2007-04-18 15:34:50 правка | ЛС | профиль | цитата


Редактировалось 1 раз(а), последний 2017-03-03 15:53:15
карма: 0

0
Ответов: 5446
Рейтинг: 323
#8: 2007-04-18 15:42:33 ЛС | профиль | цитата
HikeR, у Галкова (как и у меня) файлы действительно отличаются от дистрибутива. Советую прочитать раздел [burl=http://dev.hiasm.com/wiki.php?view=167]Что такое SVN[/burl] и воспользоваться утилитой HiUpdate из дистрибутива.
карма: 1

0
Ответов: 499
Рейтинг: 1
#9: 2007-04-18 15:54:35 ЛС | профиль | цитата
Fantomas писал(а):
STALKER_Configurator_v_0_09
не мое, я такое не делаю (и вообще, там мои идеи с задержкой в день-два внедрялись. взять то же табличное представленеи, оно у меня сразу было)
Fantomas писал(а):
и пару кнопок еще неработают
типа "сохранить как"? дык она одна, остальные фунциклируют.

[size=-2]------ Добавлено в 15:54
и это. раз в неделю собирая VLC из SVN давно понял, что свежее - не есть всегда работающее, поэтому с некоторой опаской отношусь к использованию в работе вещей из репозиториев.
посмотеть что нового - да, согласен, удобно и быстро.
карма: 0

0
Ответов: 9906
Рейтинг: 351
#10: 2007-04-18 16:47:52 ЛС | профиль | цитата
HikeR писал(а):
поэтому с некоторой опаской отношусь к использованию в работе вещей из репозиториев

За них по крайней мере есть ответственные, у нас по крайней мере.
В отличии от Upload

[size=-2]------ Добавлено в 16:47
Более того, эти вещи нуждаются в усиленном тестировании хотя бы по тому, что они прямиком попадают в следующий релиз
карма: 9

0
Ответов: 499
Рейтинг: 1
#11: 2007-04-18 17:24:07 ЛС | профиль | цитата
тут и другая проблема. скажем приписал я ListBox-у в конфиг doSetFocus (хотя не помню точно, но смысл в том, что добавил в конфиг метод, который работает, но не прописан).
а после обновления конфиг этого элемента изменился, и вылавливать по схеме, где я их использовал, довольно долго. и так после каждого обновления.
тестировать надо, согласен, сам жду-недождусь некоторых изменений. но приходится держать 2-3 копии хасма на этот случай.
а ответственность - дело сугубо добровольное, я бы не выделял этот пункт особо.
карма: 0

0
Гость
Ответов: 17029
Рейтинг: 0
#12: 2007-04-18 21:53:26 правка | ЛС | профиль | цитата


Редактировалось 1 раз(а), последний 2017-03-03 15:53:16
карма: 0

0
Ответов: 5446
Рейтинг: 323
#13: 2007-04-18 22:11:14 ЛС | профиль | цитата
HikeR, а ты обзови свой изменённый ListBox ListBoxEx-ом и доустанови его отдельно. Правда, в таком решении есть свои минусы - после обновления он может пропасть из списка.
карма: 1

0
Ответов: 499
Рейтинг: 1
#14: 2007-04-18 22:45:11 ЛС | профиль | цитата
Fantomas, кинул схему туда же: http://ifolder.ru/f39945
карма: 0

0
Гость
Ответов: 17029
Рейтинг: 0
#15: 2007-04-18 23:26:47 правка | ЛС | профиль | цитата


Редактировалось 1 раз(а), последний 2017-03-03 15:53:15
карма: 0

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)