Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18033 / 7736 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16

Как преобразовать байтовый массив (без старших байтов) в строку?

07.09.2014, 01:39. Показов 1434. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте !

Подскажите, пожалуйста,
допустим я создаю файл .txt (кодировка Win-1251)
с текстом "Test" и добавляю его к проекту в виде ресурса.

Затем я извлекаю данные из ресурса в виде байтового массива.
Но такой массив будет без старшего байта.

А значит простой byte() = string не вернет исходный текст:

Visual Basic
1
2
3
4
5
    Dim src As String
    Dim b() As Byte
 
    src = LoadResData(101, "CUSTOM")
    b() = src
Записывать в 2х раза больший объем инфы в файл ресурса не хочется.
Перебирать каждый байт циклом с конкатенацией в строку тоже как-то не ахти выглядит.

Может, я неверно себе представляю сам процесс.
Где можно почитать, как вообще формируется старший байт и что это такое ?

Вот такие данные я получил перебором байтов от 0 до 255.
Кликните здесь для просмотра всего текста

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Sub Excel()
    Dim b() As Byte, t As String
    For i = 0 To 255
        b = Chr(i)
        Cells(i + 1, 1) = i
        Cells(i + 1, 2) = b(0)
        Cells(i + 1, 3) = b(1)
        t = t & i & "|" & b(0) & "|" & b(1) & vbCrLf
        [A257] = t
    Next
End Sub
ASCb(0)b(1)
000
110
220
330
440
550
660
770
880
990
10100
11110
12120
13130
14140
15150
16160
17170
18180
19190
20200
21210
22220
23230
24240
25250
26260
27270
28280
29290
30300
31310
32320
33330
34340
35350
36360
37370
38380
39390
40400
41410
42420
43430
44440
45450
46460
47470
48480
49490
50500
51510
52520
53530
54540
55550
56560
57570
58580
59590
60600
61610
62620
63630
64640
65650
66660
67670
68680
69690
70700
71710
72720
73730
74740
75750
76760
77770
78780
79790
80800
81810
82820
83830
84840
85850
86860
87870
88880
89890
ASCb(0)b(1)
90900
91910
92920
93930
94940
95950
96960
97970
98980
99990
1001000
1011010
1021020
1031030
1041040
1051050
1061060
1071070
1081080
1091090
1101100
1111110
1121120
1131130
1141140
1151150
1161160
1171170
1181180
1191190
1201200
1211210
1221220
1231230
1241240
1251250
1261260
1271270
12824
12934
1302632
131834
1323032
1333832
1343232
1353332
13617232
1374832
13894
1395732
140104
141124
142114
143154
144824
1452432
1462532
1472832
1482932
1493432
1501932
1512032
1521520
1533433
154894
1555832
156904
157924
158914
159954
1601600
161144
162944
16384
1641640
1651444
1661660
1671670
16814
1691690
17044
1711710
1721720
1731730
1741740
17574
1761760
1771770
17864
179864
1801454
ASCb(0)b(1)
1811810
1821820
1831830
184814
1852233
186844
1871870
188884
18954
190854
191874
192164
193174
194184
195194
196204
197214
198224
199234
200244
201254
202264
203274
204284
205294
206304
207314
208324
209334
210344
211354
212364
213374
214384
215394
216404
217414
218424
219434
220444
221454
222464
223474
224484
225494
226504
227514
228524
229534
230544
231554
232564
233574
234584
235594
236604
237614
238624
239634
240644
241654
242664
243674
244684
245694
246704
247714
248724
249734
250744
251754
252764
253774
254784
255794
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.09.2014, 01:39
Ответы с готовыми решениями:

Как преобразовать байтовый массив в строку?
Здравствуйте. Мне уже стыдно писать в этот раздел, но без вашей помощи я снова пропаду. Помогите, пожалуйста. - Преобразуйте...

Как преобразовать массив байтов в строку
Как преобразовать массив байтов в строку. Допустим есть массив байтов - "c7e0f8f3ecebe5ededeef1f2fc20f1e8". Если перевести в строку...

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

1
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
07.09.2014, 01:58
Лучший ответ Сообщение было отмечено Dragokas как решение

Решение

Цитата Сообщение от Dragokas Посмотреть сообщение
Подскажите, пожалуйста,
допустим я создаю файл .txt (кодировка Win-1251)
с текстом "Test" и добавляю его к проекту в виде ресурса.
Ты сохраняешь текст в однобайтовой-кодировке (ACP), в vb6 строки хранятся в юникоде (UCS-2) поэтому ничего не выходит.
Цитата Сообщение от Dragokas Посмотреть сообщение
А значит простой byte() = string не вернет исходный текст:
Для преобразования нужно знать идентификатор локали из которого получается кодовая страница, для Русского языка - &H419. Для выбора по-умолчанию:
Visual Basic
1
2
3
4
5
Dim dat()   As Byte
Dim result  As String
 
dat = LoadResData(101, "CUSTOM")
result = StrConv(dat, vbUnicode)
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.09.2014, 01:58
Помогаю со студенческими работами здесь

Преобразовать одномерный байтовый массив в трехмерный байтовый массив
При выполнении функции выпадает исключение: "Выдано исключение типа System.OutOfMemoryException" что не так? //преобразование...

Преобразовать трехмерный байтовый массив в одномерный байтовый массив
При запуске функции выдает ошибку: индекс находится за пределами массива. Почему? //преобразование трехмерного массива в одномерный ...

Преобразовать строку в массив байтов
Имееться строка, представленая в hex кодировке: string str = "0a0f8e9a10ef71e10cd0436f819b4599"; Как ее можно преобразовать в byte...

Преобразовать массив байтов (Byte[]) в целое без знака (UInt32)
Всем привет. У меня простой вопрос. Мне нужно преобразовать массив байтов (Byte) в целое без знака (UInt32). На С++ я бы сделал это...

Как преобразовать байтовый массив в строковый список?
Всем здравствуйте. Есть байтовый массив состоящий из управляющих символов в начале и конце и кодов ASCII с разделителями в виде TAB и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru