Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 |

 

  Вопрос: Копирование из массива Добавлено: 18.09.05 14:59  

Автор вопроса:  BUG(O)R | Web-сайт: hunger.ru | ICQ: 827887 
Здраствуйте, прошу у вас помощт по следующему вопросу:

Существует массив(as byte), некая последовательность байт, проще говоря, дамп файла, по известному мне индексу в этом массиве лежит слово(в asc) ДИНАМИЧЕСКОЙ длины, оканчивающееся на dll, мне надо прочитать это слово в отдельную переменную.
Так вот сам вопрос: Как осуществить поиск в массиве не в цикле а одной како-нибудь функцией(instr например) и как выделить оттуда это слово НЕ ИСПОЛЬУЯ ЦИКЛОВ и ОПЕРАТОРОВ!!!

Это вообще возможно?

Ответить

  Ответы Всего ответов: 18  

Номер ответа: 1
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #1 Добавлено: 18.09.05 21:32
Это ж тебе не Си, хотя даже в PHP такое было... В Вб точно нет.

Ответить

Номер ответа: 2
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #2
Добавлено: 19.09.05 04:20
InStrB пробовал?

Ответить

Номер ответа: 3
Автор ответа:
 gvozd



Разработчик Offline Client

Вопросов: 164
Ответов: 1317


 Web-сайт: www.gvozdsoft.com
 Профиль | | #3
Добавлено: 19.09.05 08:54
[OFFTOP]
BUG(O)R
А ты не случайно не с дамаджлаба?
[/OFFTOP]

Ответить

Номер ответа: 4
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #4 Добавлено: 19.09.05 09:56
Попробуй конвертить все это в строку через StrConv, а далее - InStr.

Ответить

Номер ответа: 5
Автор ответа:
 BUG(O)R



ICQ: 827887 

Вопросов: 13
Ответов: 142
 Web-сайт: hunger.ru
 Профиль | | #5
Добавлено: 19.09.05 15:20
Да я тут подумал сам, посоветовался с людьми и оказалось проще/быстрее/оптимизированнее сделать через цикл :)

gvozd

Бываю там, бываю :)

Ответить

Номер ответа: 6
Автор ответа:
 gvozd



Разработчик Offline Client

Вопросов: 164
Ответов: 1317


 Web-сайт: www.gvozdsoft.com
 Профиль | | #6
Добавлено: 19.09.05 15:37
BUG(O)R
Не ожидал тебя встретить тут. :)

Ответить

Номер ответа: 7
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #7 Добавлено: 19.09.05 18:47
мож я что-то не так делаю, но StrConv на первый параметр хочет строку, а не массив.

Ответить

Номер ответа: 8
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #8 Добавлено: 19.09.05 18:59
[CODE}
Option Explicit
Option Base 1

Private Sub Form_Load()
Dim buffer(5) As Byte
buffer(1) = 72
buffer(2) = 101
buffer(3) = 108
buffer(4) = 108
buffer(5) = 111
MsgBox StrConv(buffer, vbUnicode)
End Sub
[/CODE]

Ответить

Номер ответа: 9
Автор ответа:
 Sur



ICQ: 1249088 

Вопросов: 10
Ответов: 304
 Web-сайт: sur.hotbox.ru/
 Профиль | | #9
Добавлено: 19.09.05 19:02
тогда
string = Join(array, vbNullString)

Ответить

Номер ответа: 10
Автор ответа:
 Black Dragon



ICQ: 321186096 

Вопросов: 30
Ответов: 347
 Web-сайт: в разработке
 Профиль | | #10
Добавлено: 19.09.05 21:53
НЕ ИСПОЛЬУЯ ЦИКЛОВ и ОПЕРАТОРОВ

Ну, сделай на бумажке

Ответить

Номер ответа: 11
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #11 Добавлено: 20.09.05 00:13
2 Sur

пасиб! круто, я и не знал что так можно...

Ответить

Номер ответа: 12
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #12
Добавлено: 20.09.05 05:46
Наверное ты знаешь как им пользоваться. Вот накропал примерчик.
Private Sub Form_Load()
 Dim ArrSrc() As Byte, ArrSrch() As Byte
 ReDim ArrSrc(30), ArrSrch(2)
 ArrSrc(10) = 9: ArrSrc(11) = 1: ArrSrc(12) = 5
 ArrSrch(0) = 9: ArrSrch(1) = 1: ArrSrch(2) = 5
 MsgBox InStrB(ArrSrc(), ArrSrch())
End Sub

Ответить

Номер ответа: 13
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #13
Добавлено: 20.09.05 05:49
Только результат он возвращает как для строк (нижняя граница 1), т.е. для него задавать размерность лучше так:
ReDim ArrSrc(1 To 29), ArrSrch(1 To 3)

Ответить

Номер ответа: 14
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #14
Добавлено: 20.09.05 05:58
А копировать наверное только API.
Private Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" ( _
ByRef Destination As Any, _
ByRef Source As Any, _
ByVal Length As Long)

Например так:
CopyMemory ArrSrc(X), NewArr(0),3

Ответить

Номер ответа: 15
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #15
Добавлено: 20.09.05 06:00
Т.е. наоборот,
Redim NewArr(2)
CopyMemory NewArr(0), ArrSrc(X), 3

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам