Форум программистов, компьютерный форум, киберфорум
C++/CLI Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 17.11.2013
Сообщений: 107
Записей в блоге: 2

Формирование массива из содержимого TextBox

10.06.2014, 09:36. Показов 1586. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть такая программа: textBox1, в котором написано "012345" и кнопка button1. По нажатию на кнопку должен формироваться массив таким образом filemass[0] = 0x01; filemass[1] = 0x23; filemass[0] = 0x45. я написала код но видимо ошиблась со сдвигос у меня получается filemass[0] = 1; filemass[1] = 3; filemass[0] = 5. он глотает первую цифру, помогите исправить!!!!! В программе я записываю данные в файл, потом формирую массив и соответственно сами действия. Вычитаю 0х30 для того чтобы не формировался массив в HEX
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
FileStream^ fstr;
StreamWriter^ strw;
String^ name;
FileStream^ fs;
unsigned long total_Bytes;
int n_byte, next_byte;
private: static array<Byte>^filemass = gcnew array<Byte>(60);
 
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) 
         { 
             fstr = gcnew FileStream("text.txt", FileMode::Create, FileAccess::ReadWrite);
             strw = gcnew StreamWriter(fstr);
             strw-> Write(textBox1->Text);
             name = "text.txt";
             strw->Close();
             fstr->Close();
             FileInfo^ fi = gcnew FileInfo(name);
             fs = fi->OpenRead();
             total_Bytes = fi->Length;
             array<Byte>^dop_new_mass = gcnew array<Byte>(total_Bytes);
             int nBytesRead = fs->Read(dop_new_mass, 0, total_Bytes);
             n_byte = 0;
             next_byte = 1;
             for (int m=0; m<60; m++)
             {
                 if (n_byte>total_Bytes-1)
                     filemass[m] = 0x00;
                 else
                 {
                     int one = 0; int two = 0;
                     one = dop_new_mass[n_byte]-0x30;
                     two = dop_new_mass[next_byte]-0x30;
                     filemass[m] = (one<<8)+two;    //вот здесь нужны видимо какие то изменения
                     n_byte = n_byte+2;
                     next_byte = next_byte+2;
                 }
             }
             MessageBox::Show(filemass[0]+" "+filemass[1]+" "+filemass[2],"Внимание");
 
         }
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.06.2014, 09:36
Ответы с готовыми решениями:

Динамическое формирование select содержимого
Всем привет ! Если кто встречал киньте ссылочку . Есть два select в одном к примеру страны а в другом города нужно в зависимости от...

Формирование сайта с изменением содержимого основного блока
Нужно создать простенький сайт, в котором внутренних страниц будет не так много. Так как хедер, футер, меню и т.п. (кроме основной...

Формирование списка содержимого папок в файл с модифицированными путями
Доброго времени суток, товарищи. Прошу помощи у более сведущих товарищей. Есть каталог x:\photos\ в котором лежат юзеры (vasya, petya,...

5
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
10.06.2014, 09:52
Сладуля,
C++
1
filemass[m] = (one<<4)+two;
Объяснять почему? Или не стоит?)
1
0 / 0 / 0
Регистрация: 17.11.2013
Сообщений: 107
Записей в блоге: 2
10.06.2014, 09:57  [ТС]
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
FileStream^ fstr;
StreamWriter^ strw;
String^ name;
FileStream^ fs;
unsigned long total_Bytes;
int n_byte, next_byte;
private: static array<Byte>^filemass = gcnew array<Byte>(60);
 
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) 
         { 
             fstr = gcnew FileStream("text.txt", FileMode::Create, FileAccess::ReadWrite);
             strw = gcnew StreamWriter(fstr);
             strw-> Write(textBox1->Text);
             name = "text.txt";
             strw->Close();
             fstr->Close();
             FileInfo^ fi = gcnew FileInfo(name);
             fs = fi->OpenRead();
             total_Bytes = fi->Length;
             array<Byte>^dop_new_mass = gcnew array<Byte>(total_Bytes);
             int nBytesRead = fs->Read(dop_new_mass, 0, total_Bytes);
             n_byte = 0;
             next_byte = 1;
             for (int m=0; m<60; m++)
             {
                 if (n_byte > total_Bytes-1)
                     filemass[m] = 0;
                 else
                 {
                     int one = 0; int two = 0;
                     one = dop_new_mass[n_byte]-0x30;
                     two = dop_new_mass[next_byte]-0x30;
                     filemass[m] = (one<<4)+two;          //вот здесь нужны видимо какие то изменения
                     //filemass1[m] = (two<<8)+one;
                 }
                 n_byte = n_byte+2;
                 next_byte = next_byte+2;
             }
             MessageBox::Show(filemass[0]+" "+filemass[1]+" "+filemass[2],"Внимание");
 
         }
При таком коде получается массив:
filemass[0] = 1
filemass[1] = 35
filemass[1] = 69

А мне нужен массив:
filemass[0] = 01
filemass[1] = 23
filemass[1] = 45

Как бы чтобы в каждом элементе массива былол 2 символа из TextBox
0
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
10.06.2014, 10:05
Лучший ответ Сообщение было отмечено Сладуля как решение

Решение

Цитата Сообщение от Сладуля Посмотреть сообщение
А мне нужен массив:
filemass[0] = 01
filemass[1] = 23
filemass[1] = 45
нужен не такой массив. Нужен массив { 0x01, 0x23, 0x45 }. Префикс 0x означает, что числа в шестнадцатеричной системе. Переводим в десятичную, получаем { 1, 35, 69 }. То есть, все верно

Добавлено через 1 минуту
Или все таки в десятичной системе числа нужны?
1
0 / 0 / 0
Регистрация: 17.11.2013
Сообщений: 107
Записей в блоге: 2
10.06.2014, 10:07  [ТС]
Спасибо большое))))) Утром туплю))))) ОЧень помогли)))))
0
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
10.06.2014, 10:07
Если в десятичную, то все проще:
C++
1
filemass[m] = 10 * one + two;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.06.2014, 10:07
Помогаю со студенческими работами здесь

Программа реализующая действия со стеком. Формирование и вывод содержимого стека на экран дисплея
Помогите пожалуйста с программой, или приведите пример пример программы реализующей действия со стеком. Формирование и вывод содержимого...

Хранение содержимого TextBox
Здравствуйте есть такой вопрос. Как сделать так что бы данные которые я ввел в TextBox сохранялись после перезапуска программы?

Очистка полей textbox от содержимого
День добрый. Подскажите как очищать поля от содержимого внем просле выполнения собыия? Сп.

Замена части содержимого TextBox
Дано: 1) 3 текстовых поля: Вох1, Вох2, Вох3; 2) 3 кнопки: Добавить, Поместить, Обновить. Вводим в поле Вох1 текст, н-р...

Вывод на печать содержимого TextBox
Здравствуйте. Работаю на Visual Basic. NET 2003. Нужно распечатать содержимое TextBox. Какие объекты и какой код нужен для этого? Заранее...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
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