Город Мастеров
IPB

Здравствуйте, гость ( Вход | Регистрация )

5 страниц V  « < 2 3 4 5 >  
Ответить в эту темуОткрыть новую тему
> Русификация, Все про русификацию редактора, модулей и т.п.
Ice Blade
сообщение Nov 7 2010, 19:43
Сообщение #76


Трехмерный Маньяк
Иконки Групп

Класс: Мастер Оружия
Характер: Lawful Neutral
Раса: Нежить
NWN: Контент
Проклятие Левора



Старый добрый глюк с Cp хмм... наврятли, даже если шрифт примет русский, его не примет БД - а следовательно тлк, но... как показала практика на тлк в определёных условиях можно вообще чихать, так что стоит попробовать.
----------------------------------
Попробовал: (IMG:style_emoticons/kolobok_light/nea.gif)
Как и ожидалось - не работает, всё таки тлк пока остаётся единственным способом. (IMG:style_emoticons/kolobok_light/cray.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Leon PRO
сообщение Nov 8 2010, 01:50
Сообщение #77


Ушедший на войну
Иконки Групп

Класс: Маг
Характер: Chaotic Good
Раса: Человек
NWN: Контент



Блин, объясните мне, пожалста, как связать текст в к.л. кастомном ресурсе с ТЛК ???
Например я создал плейсибл, в нем есть PopUp text.

Как сделать, чтобы там был текст из ТЛК?
Повбивал несколько строк туда, сделал Export Foreign Talk table и просто Export Talk table, судя по логу создаются только "LNG01_en-us.tlk", заюитый моими русскими строками и "LNG01_c_en-us.tlk" в core - пустой.

Я сначала предполагал, что все строки с флагом RequiresReTranslation автоматом скидываются в ТЛК и связываются через ResRef прозрачно для пользователя, но, видимо ошибся =\

В принципе, сейчас, раз все в тулсете сохраняется-загружается, пишется и отображается, а также сохраняется в файлы с русскими буквами, как положено - хочу покопать ТЛК.

И, кстати предлагаю сделать каой-то закрепленный пост в начале, где перечислить по пунктам все существующие проблемы, а то, лично из-за пока еще малого времени работы с тулсой постоянно путаюсь - что заработало а что нет.

В данный момент, я так понял проблема с использованием кириллицы именно в UI тулсета полностью решена через БД? Все строки пишутся по русски, сохраняются и снова загружаются корректно.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ghost
сообщение Nov 8 2010, 02:37
Сообщение #78


Level 19
******

Класс: Рейнджер
Характер: Lawful Neutral
Раса: Эльф



Леоно, ты об этом?
Цитата
In the toolset there is no tool to manage foreign languages (I read an answer from a Bioware guy explaining that the language tool they use was not implemented in the toolset for players). If you want to manage foreign languages, you have to create your own talktables.
BUT, there is a bug with items you create (or modify I suppose). When you export them, the files generated contain an information saying to the game to not use foreign talktables ... so in game you will have the names and descriptions fulfilled in the toolset.
Here is a post (in french) about this problem and how to solve it (you have to handle files with an hexadecimal editor) http://social.bioware.com/forum/3/topic/50/index/1247210

(IMG:style_emoticons/kolobok_light/unsure.gif)

(откопано на формах Биовара)

И таки да, в шапке не помешал бы список достигнутого.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Leon PRO
сообщение Nov 8 2010, 03:37
Сообщение #79


Ушедший на войну
Иконки Групп

Класс: Маг
Характер: Chaotic Good
Раса: Человек
NWN: Контент



Да, именно это, НО, оказалось, что Гриффон уже описывал это на первой странице:
http://www.city-of-masters.ru/forums/index...=6206&st=0#

Для помещения всего текста, нуждающегося в локализации в ТЛК надо просто напросто сделать чек-аут объекта. Строки сразу появятся в стринг эдиторе, и дальнейшая их правка там сразу отобразится и на связанных объектах.
В итоге весь русский текст попал в ТЛК, и после применения метода айса по включенияю ТЛК в игре все заработало!
Кстати, у меня так и экспортит en-us.tlk, но модуль берет строки оттуда.

Что имеем, значит на данный момент:
1. Ввод-вывод локализованных строк в UI тулсета сделан через модификацию БД.
2. Вывод в ТЛК автоматически производится по чк-аут и проблем тут нет. Все строки корректно пишутся сами.
Ну, значит получается, что всего-навсего осталось:
3. Сделать тулзу, которая во время (или, лучше после) экспорта, в фоне, или по запуску, пакетно чистит все GFFv3.2 ресурсы от LocString-ов. Для GFFv4.0 эта операция не нужна, т.к. там ресурс хоть и содержит ресреф и локстринг, но пишется по другому ("REF:LocString")и корректно работает.

И первое полноценное решение готово.
Поправьте меня если я не прав?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ice Blade
сообщение Nov 8 2010, 06:53
Сообщение #80


Трехмерный Маньяк
Иконки Групп

Класс: Мастер Оружия
Характер: Lawful Neutral
Раса: Нежить
NWN: Контент
Проклятие Левора



Цитата
2. Вывод в ТЛК автоматически производится по чк-аут и проблем тут нет. Все строки корректно пишутся сами.

А вот это интерестно, у меня кирилица в тлк так и не попадает. При Check In выбрасывает ???? ???? ????. Хм... Collation ? - Поподробней Лео. (IMG:style_emoticons/kolobok_light/scratch_one-s_head.gif)

-----------------
ААААа понял, причина в том что тестил на уже созданых плейсиблах, если плейсибл новый то проблемма с Check In отпадает (IMG:style_emoticons/kolobok_light/good.gif) - видать БД помнит, в каком виде были созданы стринги.

Короче остался только пункт 3:
Цитата
3. Сделать тулзу, которая во время (или, лучше после) экспорта, в фоне, или по запуску, пакетно чистит все GFFv3.2 ресурсы от LocString-ов. Для GFFv4.0 эта операция не нужна, т.к. там ресурс хоть и содержит ресреф и локстринг, но пишется по другому ("REF:LocString")и корректно работает.

И про рус. проблему можно вообще забыть.

Цитата
Кстати, у меня так и экспортит en-us.tlk, но модуль берет строки оттуда.

См. пункт 1 - того списка где я описывал изменения в БД, - т.е Foreign Talk table в опциях, и должен будет будет использовать ru-ru, хотя на деле разницы особой нет.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Griffon
сообщение Nov 8 2010, 13:50
Сообщение #81


Level 18
Иконки Групп

Класс: Страж Тьмы
Характер: True Neutral
Раса: Человек
МАСТЕР D&D



Благодарность Айсу, Леону и Киперу за титанический труд. (IMG:style_emoticons/kolobok_light/thank_you.gif)

Цитата(Ice Blade @ Nov 5 2010, 19:58) *
Ну я скорее из вредности копал(ю), нежели из-за какой либо конкретной цели - другой вопрос надо ли кому это, кроме собственно "меня" самого ? В ДА сейчас мне скорее интересен "процесс" нежели результат. Потому всё зависит от того, какие отмазки "народ" придумает дальше - чтоб ничего не делать. Это я к тому что: - для кого вообще стараемся ?

Надо. Интересующихся редактором ДА, на самом деле, очень мало, но они есть.

Цитата(Ice Blade @ Nov 6 2010, 17:00) *
Незнаю кому как, а мне приятней работать с изначально руссифицированой программой. Правда за это прийдётся заплатить, совместимостью с будущими патчами тулсета (замечу не игры) - НО .. будут ли они ????

ИМХО, патч, скорее всего, будет один и окажется последним. По идее, Био должны его выложить после выхода ДА2 и на этом их помощь сообществу успешно завершится.

Цитата(Leon PRO @ Nov 8 2010, 01:50) *
Я сначала предполагал, что все строки с флагом RequiresReTranslation автоматом скидываются в ТЛК и связываются через ResRef прозрачно для пользователя, но, видимо ошибся =\

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

Пока не до конца въехал в суть решения русификации, видно придется восстановить редактор и пробовать. В связи с этим есть вопрос - при сносе тулса, также подтвердил снос SQL...... и какую версию мне теперь ставить?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Leon PRO
сообщение Nov 8 2010, 14:21
Сообщение #82


Ушедший на войну
Иконки Групп

Класс: Маг
Характер: Chaotic Good
Раса: Человек
NWN: Контент



Пофиг какую. Можешь тулсетную вообще не ставить.

У айса вон 2005, у меня 2008 стояла, и я в нее залил дамп и пользовался, а тулсетную 2005 не ставил (отключил галку во время установки).
Если будешь модифицировать базу (для русификации) - понадобится еще и MS SQL management Studio подойдет Express версия для той версии БД что ты поставишь.

Но, если ничего не стоит вообще - ставь тулсетную, наверное. Меньше гимора будет с установками. Правда там какая-то мегапроблема была, если вин ХП не пропатчен до СП3, так что аккуратнее.

UPD.1 Ахах, народ, вы поняли, что рускоязычное (не пишу русское, т.к. тут не только из России товарисчи есть ) ) комюнити по ходу - первое в мире, которое смогло локализовать тулсет в приемлимом виде. И не просто локализовать, а найти универсальное решение для всех языков. =)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
virusman
сообщение Nov 8 2010, 15:53
Сообщение #83


Level 17
Иконки Групп

Класс: Волшебник
Характер: Neutral Good
Раса: Человек
NWN: Скриптинг [PW]
Axistown SR 1.9
NWNX



Вполне вероятно, что те же французы тоже нашли решение и тоже на подобном форуме, но не отпостили на биоваревском. (IMG:style_emoticons/kolobok_light/smile.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Leon PRO
сообщение Nov 8 2010, 16:44
Сообщение #84


Ушедший на войну
Иконки Групп

Класс: Маг
Характер: Chaotic Good
Раса: Человек
NWN: Контент



Я французский не знаю, но единственное, что понял по скринам, что там копали HEX-ы, и явно не те что мы.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ice Blade
сообщение Nov 8 2010, 17:51
Сообщение #85


Трехмерный Маньяк
Иконки Групп

Класс: Мастер Оружия
Характер: Lawful Neutral
Раса: Нежить
NWN: Контент
Проклятие Левора



Цитата
Благодарность Айсу, Леону и Киперу за титанический труд.

Цитата
UPD.1 Ахах, народ, вы поняли, что рускоязычное (не пишу русское, т.к. тут не только из России товарисчи есть ) ) комюнити по ходу - первое в мире, которое смогло локализовать тулсет в приемлимом виде. И не просто локализовать, а найти универсальное решение для всех языков. =)

Как бы так или иначе - всё в этом топипе руку приложили. Тут не с каждого перепою догадаешься что проблема может быть в двух-трёх и более местах. Однако она в нормальном виде ещё не решена см. вышеописанный пункт №3 - макрос EqKeeper - конечно очень замечательно, но хочется чего-то более быстрого и стабильного, НУ - есть тут у нас кто-нибудь "добрый дядька программист". GFF как формат вроде давно неплохо расписан.

Что про SQL, русификацию, тлк и прочее - то ДА, - уже чувствуется необходимость в F.A.Q-е, и в принципе есть что туда записать, надо только мыслями собраться (у меня последнее время это не очень получается (IMG:style_emoticons/kolobok_light/wacko.gif) )
А ещё лучше, попытаться сделать какой-нить простенький модуль открытого так сказать типа - дабы всем скопом попытаться решить возникшие проблемы, - а то чувствую что кириллица не самая большая беда ДА. Вот только это я уже не потяну в одиночку ибо чем ближе "новый год" - тем больше нагрузка на работе, да и специализация у меня узкая - "типичный контентщик".
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Leon PRO
сообщение Nov 8 2010, 18:35
Сообщение #86


Ушедший на войну
Иконки Групп

Класс: Маг
Характер: Chaotic Good
Раса: Человек
NWN: Контент



По п.3 я займусь. Если не найдется к.л. школьника, студента с бОльшим количеством свободного времени, нежели "после работы".
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
EqKeeper
сообщение Nov 8 2010, 20:56
Сообщение #87


Level 4
**

Класс: Маг
Характер: True Neutral
Раса: Человек



Сейчас отпуск и огромное количество проектов, но, возможно, удастся выкроить один денек.
http://social.bioware.com/wiki/datoolset/i....0_and_GFF_V3.2
Ткните пальчиком, какие типы полей неугодны и их надо убивать?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Leon PRO
сообщение Nov 8 2010, 21:12
Сообщение #88


Ушедший на войну
Иконки Групп

Класс: Маг
Характер: Chaotic Good
Раса: Человек
NWN: Контент



Нене, это Eclipse GFF, а надо работать с Aurora GFF. Его структура тут:
http://nwn.bioware.com/developers/Bioware_..._GFF_Format.pdf

Там в корне списка в грязном файле ноды выглядят вот так (для наглядности написал в XML формате):
Neverwinter Script
<cexolocstring name="LocName" strref="991556708">
      <phrase language="english">werwerwe</phrase>
      <phrase language="english">werwerwerwerwerew</phrase>
</cexolocstring>
<cexolocstring name="LocPopupText" strref="991556709">
      <phrase language="english">фыфвфв</phrase>
      <phrase language="english">вфывфы</phrase>
</cexolocstring>

Так вот, у нод с именем "LocName" и "LocPopupText" (это конкретно у UTP GFF), а возможно просто у всех нод (универсальное решение, требующее проверки на разных типах GFF) с типом "cexolocstring" надо удалить дочерние элементы.

Тоже сел за проектик, на на Managed C# парсинг структурных файлов - занятие весьма унылое (IMG:style_emoticons/kolobok_light/smile.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
EqKeeper
сообщение Nov 9 2010, 00:00
Сообщение #89


Level 4
**

Класс: Маг
Характер: True Neutral
Раса: Человек



Хм... только дочерние? А сами ноды оставлять?
Ну да, на С++ это на порядок удобнее, хотя и на шарпе уже делал. (IMG:style_emoticons/kolobok_light/smile.gif) (а вот кто такой Managed C# не знаю >_>)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Leon PRO
сообщение Nov 9 2010, 00:49
Сообщение #90


Ушедший на войну
Иконки Групп

Класс: Маг
Характер: Chaotic Good
Раса: Человек
NWN: Контент



Да, сами ноды оставлять без изменения.
C# он как бы Managed по умолчанию (IMG:style_emoticons/kolobok_light/biggrin.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
EqKeeper
сообщение Nov 9 2010, 00:58
Сообщение #91


Level 4
**

Класс: Маг
Характер: True Neutral
Раса: Человек



А я этого термина не понимаю. (IMG:style_emoticons/kolobok_light/smile.gif) Самоучка. (IMG:style_emoticons/kolobok_light/smile.gif) Так что теория у меня на нуле + немного MSDN. (IMG:style_emoticons/kolobok_light/smile.gif)

P.S. Ой... мы опять оффтопим. х_х
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
kelamor
сообщение Nov 9 2010, 05:44
Сообщение #92


Level 2
*

Класс: Бард
Характер: Lawful Good
Раса: Человек



За темой слежу давно, но, так как сказать было нечего, молчал.
Я к тому, что в необходимости решения этой проблемы сомневаться не надо (IMG:style_emoticons/kolobok_light/smile.gif)

Я решал проблему кардинально(на примере предмета):
1. Экспортировал и редактировал Foreign tlk.
2. В GFF-редакторе удалял текст из строк Name и Description.

После этого игра начинала читать текст из tlk-файла.

А так как вы тут уже почти решили всё, я с нетерпением жду (IMG:style_emoticons/kolobok_light/smile.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Griffon
сообщение Nov 9 2010, 10:50
Сообщение #93


Level 18
Иконки Групп

Класс: Страж Тьмы
Характер: True Neutral
Раса: Человек
МАСТЕР D&D



Цитата(Ice Blade @ Nov 8 2010, 17:51) *
А ещё лучше, попытаться сделать какой-нить простенький модуль открытого так сказать типа - дабы всем скопом попытаться решить возникшие проблемы, - а то чувствую что кириллица не самая большая беда ДА. Вот только это я уже не потяну в одиночку ибо чем ближе "новый год" - тем больше нагрузка на работе, да и специализация у меня узкая - "типичный контентщик".

Поддерживаю идею. Тогда на выходных ставлю редактор и возьму создание двух локаций - внутренняя и внешняя. Правда, много времени уделить не смогу..... 2-3 часа по выходным. Попутно буду изучать создание ролика при помощи катсцен (покосился в сторону Леона (IMG:style_emoticons/kolobok_light/biggrin.gif) ).
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Leon PRO
сообщение Nov 10 2010, 02:05
Сообщение #94


Ушедший на войну
Иконки Групп

Класс: Маг
Характер: Chaotic Good
Раса: Человек
NWN: Контент



GFF Tool
День 1. Кой как разобрался с довольно неплохим способом чтения бинарных файлов и преобразования в структуры. Все бажит страшно. Технологию вижу впервые и совсем не разбираюсь еще. Лег в 4 утра. опоздал на работу на 3 часа (IMG:style_emoticons/kolobok_light/wacko.gif)
День 2. Ловил баги вчерашнего дня. Сегодня ЭТО уже в состоянии под дебагером читать структуру верхнего уровня и Labels нод из которых она состоит.
День 3. Добавил еще обработчиков на внутренние структуры GFF. Дошел как раз до CExoString и CExoLocString, которые нужны для исправления. Занялся оптимизацией классов чтения файла. Все разобрал, ничего не работает, собрать не успел )

--------------------------------------------------------------------------
Текущий статус - все разобрано, ничего не работает (IMG:style_emoticons/kolobok_light/crazy.gif)
--------------------------------------------------------------------------
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
kelamor
сообщение Nov 10 2010, 02:41
Сообщение #95


Level 2
*

Класс: Бард
Характер: Lawful Good
Раса: Человек



Цитата(Griffon @ Nov 9 2010, 16:50) *
Попутно буду изучать создание ролика при помощи катсцен
Туториал на русском Griffon: Спасибо за ссылку. Почисть почту... не смог ПМ-ку отправить. (IMG:style_emoticons/kolobok_light/smile.gif)

Цитата(Ice Blade @ Nov 8 2010, 23:51) *
А ещё лучше, попытаться сделать какой-нить простенький модуль открытого так сказать типа - дабы всем скопом попытаться решить возникшие проблемы, - а то чувствую что кириллица не самая большая беда ДА. Вот только это я уже не потяну в одиночку ибо чем ближе "новый год" - тем больше нагрузка на работе, да и специализация у меня узкая - "типичный контентщик".
В принципе никаких проблем с тулсом не замечал, всё достаточно ровно работает. Если только с локациями траблы какие.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ice Blade
сообщение Nov 10 2010, 06:55
Сообщение #96


Трехмерный Маньяк
Иконки Групп

Класс: Мастер Оружия
Характер: Lawful Neutral
Раса: Нежить
NWN: Контент
Проклятие Левора



Цитата
Лег в 4 утра. опоздал на работу на 3 часа

Ты это.. аккуратней, ты нам живой-здоровый нужен (IMG:style_emoticons/kolobok_light/good.gif) ( ..само собой пока тулсу не доделаешь (IMG:style_emoticons/kolobok_light/biggrin.gif) )

Цитата
В принципе никаких проблем с тулсом не замечал, всё достаточно ровно работает. Если только с локациями траблы какие.
Ну кроме множества болезней лок, ещё скрипты, VO и опять же сама БД - вызывают некоторые опасения. Да и с более глубокими модификациями вроде шаренья по 2да - есть проблемы с теми же придельными стрингами. В общем проблемы есть, только степень их пока не определена, да и настораживает сам факт того что даже англоязычные, не шибко-то взялись за написание полноценных модулей.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Leon PRO
сообщение Nov 10 2010, 10:53
Сообщение #97


Ушедший на войну
Иконки Групп

Класс: Маг
Характер: Chaotic Good
Раса: Человек
NWN: Контент



Кстати, я столкнулся с проблемой, что при попытке удалить ресурс, даже если ссылки наи него не остались нигде (плейсибл удален из локи и с него снят конверсейшн тэг) все равно пишет, что ссылка на него осталась в локе и на конверсейшне.

Если эти ссылки хранятся в БД, то вылечить можно, т.к. действительно, все (не уверен, конечно, но, может почти все (IMG:style_emoticons/kolobok_light/smile.gif) ) манипуляции с БД тулсет делает через хранимые в БД процедуры, которые можно править!!!

Также, возможно получиться избавиться и от некоторых других ошибок или/и улучшить работу с существующими функциями.

Цитата
Туториал на русском

Клево. Большой объем работы сделан!
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
EqKeeper
сообщение Nov 10 2010, 14:06
Сообщение #98


Level 4
**

Класс: Маг
Характер: True Neutral
Раса: Человек



Цитата(Leon PRO @ Nov 10 2010, 03:05) *
GFF Tool
День 1. Кой как разобрался с довольно неплохим способом чтения бинарных файлов и преобразования в структуры. Все бажит страшно. Технологию вижу впервые и совсем не разбираюсь еще. Лег в 4 утра. опоздал на работу на 3 часа (IMG:style_emoticons/kolobok_light/wacko.gif)
День 2. Ловил баги вчерашнего дня. Сегодня ЭТО уже в состоянии под дебагером читать структуру верхнего уровня и Labels нод из которых она состоит.


Имеем FileStream с доступом на чтение Stream. Имеем структуру data класса SData.
Код
Stream.Position = 0; // С какого места будем читать
byte[] buffer = new byte[Marshal.SizeOf(typeof(SData))];
int i = 0;
while (i < buffer.Length) { i += Stream.Read(buffer, i, buffer.Length - i); }
GCHandle handle = GCHandle.Alloc(buffer, GCHandleType.Pinned);
data = (SData)Marshal.PtrToStructure(handle.AddrOfPinnedO
bject(), typeof(SData));
handle.Free();


Запись аналогичным образом. (IMG:style_emoticons/kolobok_light/crazy.gif)

Сообщение отредактировал EqKeeper - Nov 10 2010, 14:07
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Leon PRO
сообщение Nov 10 2010, 14:49
Сообщение #99


Ушедший на войну
Иконки Групп

Класс: Маг
Характер: Chaotic Good
Раса: Человек
NWN: Контент



Я примерно также и читаю, только чуть попроще не каждый байт, а все сразу, только там нашлось несколько подводнх камней с маршаллингом, в бодании с которыми я провел несколько часов, чтобы структуры приходили чистые.

Код
22     byte[] buff = _br.ReadBytes(Marshal.SizeOf(typeof(T)));
23     GCHandle handle = GCHandle.Alloc(buff, GCHandleType.Pinned);
24     T resultStruct = (T)Marshal.PtrToStructure(handle.AddrOfPinnedObject(), typeof(T));
25     handle.Free();

Ну, запись там не очень аналогичным образом идет, но тоже через указатели.

Меня раньше передергивало от любого Unsafe конента, собственно я С# выбрал именно из-за того, что не надо работать напрямую с указателями, ссылками и памятью, но без этого слишком долго управляемый десериализатор писать придется =(
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
EqKeeper
сообщение Nov 10 2010, 16:42
Сообщение #100


Level 4
**

Класс: Маг
Характер: True Neutral
Раса: Человек



Хмм... подводные камни именно из-за способа чтения или вообще? (у самого проблем не было)

---

Да, и кто есть _br? (IMG:style_emoticons/kolobok_light/smile.gif) А то у FileStream я .ReadBytes не вижу =\

Сообщение отредактировал EqKeeper - Nov 11 2010, 17:37
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

5 страниц V  « < 2 3 4 5 >
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 28th March 2024 - 23:13