Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.227.24.209] |
|
Сообщ.
#1
,
|
|
|
Как передать пользовательский тип данных от серрверного клиентскому приложению через винсок?
это есть и на сервере и на клиенте: 'Тип обьектов схемы Public Type SXEMTYPE UnitLabelU_KK() As SXEMTYPE_KK UnitUnitKK_KK() As Long UnitIndexKK_KK() As Variant UnitAdrKK_KK() As Byte SerNUnit_KK() As String UnitLabel_Sw() As SXEMTYPE_Sw LabeTxt_Tx() As SXEMTYPE_Tx Line_NT() As SXEMTYPE_NT pArrow_Ar() As SXEMTYPE_Ar Count_KK As Long Count_Sw As Long Count_Tx As Long Count_NT As Long Count_Ar As Long End Type Public SendClSxem As SXEMTYPE передаю данные wsClients(Index).SendData ID & "@" & SendClSxem & "@" & CLN_MESSAGE |
Сообщ.
#2
,
|
|
|
dim buff() as byte redim buff(1 to len(SendClSxem)) senddata buff Для текста не прокатит. Нужен другой подход Penumbra, догадаетесь сами? |
Сообщ.
#3
,
|
|
|
эээ, а как SendClSxem запихнуть в байтовый массив?
п.с. максимум до чего я догадался так это записать SendClSxem As SXEMTYPE в бинарный файл, затем считать его в текстовую переменную txtTemp as string , затем переслать ее клиенту, затем уже у клиента txtTemp as string записать в файл а уж потом с бинарного файла прочитать в GetClSxem As SXEMTYPE ну, дык, этож геморойно... |
Сообщ.
#4
,
|
|
|
Цитата Penumbra @ этож геморойно... Но мысль работает!!! Это один из вариантов. |
Сообщ.
#5
,
|
|
|
Цитата Black Star @ Но мысль работает!!! это меня не сильно утешает а какие другие варианты? и всетаки, как SendClSxem запихнуть в байтовый массив? |
Сообщ.
#6
,
|
|
|
Создать функцию, которая конвертирует структуру в строку, и комплементарную ей функцию. И передавать...
|
Сообщ.
#7
,
|
|
|
Цитата Akina @ Создать функцию, которая конвертирует структуру в строку, и комплементарную ей функцию. И передавать... Иии??? Мне эта мысль пришла самая первая, но, если б я знал как это сделать, то не было бы этого топика в том-то и проблема что я НЕ знаю как структуру конвертнуть в строку, а потом обратно... |
Сообщ.
#8
,
|
|
|
Penumbra, ну не все так радостно
Массив создаешь сразу... большой. и копипастишь в него все составляющие.... типа copymemory buff(x+0),varLONG1,4 copymemory buff(x+4),varLONG2,4 buff2=strconv(varSTRING,vbFromUnicode) copymemory buff(x+8),buff2(0),len(varSTRING) и т.д. и т.п. Потом все это дело обратно |
Сообщ.
#9
,
|
|
|
Цитата Penumbra @ Иии??? Мне эта мысль пришла самая первая, но, если б я знал как это сделать, то не было бы этого топика в том-то и проблема что я НЕ знаю как структуру конвертнуть в строку, а потом обратно... И что же ты не можешь конвертировать в string? какой из типов? говори, не стесняйся... или проблема в том, как выпполнить конкатенацию конвертированных элементов структуры? |