Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Crait
0 / 0 / 0
Регистрация: 26.09.2012
Сообщений: 32
#1

Записать TextBox в string - C++

24.10.2012, 20:36. Просмотров 1476. Ответов 5
Метки нет (Все метки)

Создаю виндовс форм, задача - взять текст из текст бока в переменную класса string. String^ не катит. Вот кусок кода:
C++
1
2
3
4
5
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e)
             {
                 string text;
                 text = textBox1->Text;
             }
Идут ошибки:
error C2065: string: необъявленный идентификатор ( библиотеку стринг подключил )
error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "text"
error C2065: text: необъявленный идентификатор
В чем проблема?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.10.2012, 20:36     Записать TextBox в string
Посмотрите здесь:

Проверка содержимого string/TextBox - C++
Доброго времени суток! Имеется строка TextBox, которую я перевожу в string, дабы затем поместить в переменную типа int, однако в случае...

Как записать string в файл? - C++
Добрый день, есть код программы, необходимо записать строку в текстовый файл. У меня получаются кракозябры. void table(string n1,string...

Как объединить 2 char и записать в string - C++
Как объединить 2 char и записать в string в файле находится строчка вида 012345 Все переменные принимаются правильно, как я понимаю...

Как записать из файла в строку string? - C++
Как записать из файла в строку string? std::ifstream vocabulari; vocabulari.open("vocabulari.txt"); if(vocabulari.fail()) return...

Записать строку с пробелами в string, с помощью потока. - C++
Здравствуйте. Можно ли с помощью потока ввода записать строку с пробелами в тип string. Если да, то как.

Как записать длину строки типа string в переменную - C++
Собственно вопрос в заголовке. Спасибо заранее:) Через i=s.size() // где, s -> string, i -> int; не работает

Как записать шестнадцатеричное число в переменную типа string? - C++
Есть ф-ция, которая переводит целочисленный переменные или просто цифры в шестнадцатеричный вид. Например этот кусок кода выведет в консоль...

Как класс string записать в бинарный файл через вектор? - C++
вопрос такой у меня есть класс. я создаю вектор по этому классу vector<Employee> work; вектор отлично заполняется и вся программа...

Можно ли в std::string записать Ansi символ (например NUL)? - C++
Можно ли в std::string записать Ansi символ(например NUL)?

Из переменной типа std::string записать в файл большое количество данных (2 Mb) - C++
Нужно записать в файл большое количество данных. Предполагается, что в переменной большое количество строк следовательно `>>` не...

Как записать объект с полем типа std::string в бинарном виде в файл и считать его обратно? - C++
Знаю как записывать объекты в файл в бинарном виде, но как быть, когда у них динамические поля? Какой метод использовать? Можете привести...

Принимать string или string& - C++
Нужно принимать аргумент string&, если передается string, и string, если передается не string Лучше сформулировать сходу не получилось,...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
24.10.2012, 20:42     Записать TextBox в string #2
Цитата Сообщение от Crait Посмотреть сообщение
В чем проблема?
в том что это не с++, это с++/CLI совершенно другой язык! Если вам нужны формы используйте C#

Добавлено через 43 секунды
Цитата Сообщение от Crait Посмотреть сообщение
String^ не катит
он как раз таки катит
Crait
0 / 0 / 0
Регистрация: 26.09.2012
Сообщений: 32
24.10.2012, 22:09  [ТС]     Записать TextBox в string #3
Нет, это кусок кода. У меня есть уже работающий консольный код, состоящий в том числе и из функций, который нужно перенести на виндовс форм. Именно поэтому String ^ и не катит. Функции с ним не хотят работать, блин. Нельзя-ли как-нибудь сделать так, чтобы string подошел? НУ или перенести со String^ в string?

Добавлено через 1 час 23 минуты
http://msdn.microsoft.com/en-us/libr...(v=vs.80).aspx
Нельзя ли сделать что-нибудь обратное?
MrCold
853 / 751 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
24.10.2012, 22:23     Записать TextBox в string #4
Цитата Сообщение от Crait Посмотреть сообщение
сделать так, чтобы string подошел? НУ или перенести со String^ в string?
Можно - возни много .Код , что ль, покажите свой .. Может кто решится .

Добавлено через 5 минут
Цитата Сообщение от Crait Посмотреть сообщение
Нельзя ли сделать что-нибудь обратное?
Так вот же оно
http://msdn.microsoft.com/en-US/libr...(v=vs.80).aspx
Crait
0 / 0 / 0
Регистрация: 26.09.2012
Сообщений: 32
24.10.2012, 23:14  [ТС]     Записать TextBox в string #5
Цитата Сообщение от MrCold Посмотреть сообщение
Можно - возни много .Код , что ль, покажите свой .. Может кто решится .

Добавлено через 5 минут

Так вот же оно
http://msdn.microsoft.com/en-US/libr...(v=vs.80).aspx
Спасибо! Я не нашел, маленький опыт сказывается.
Код почти весь на функциях строится. Вот, например:
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
void MD5_hash(string sIn, int &A,int &B,int &C, int &D)
{
 
int length=sIn.size(); //получаем длину входного сообщения.
int rests=length%64; //остаток от деления на 64байта.
int size = 0; //тут будет храниться размер сообщения после первых 2ух шагов.
 
//Шаг 1.
if(rests < 56) //если остаток от деления на 64 меньше 56
 size=length-rests+56+8; //подгоняем размер так, что бы он был кратен 64(+8 байт для 2ого шага).
else //иначе (если остаток больше 56)
 size=length+64-rests+56+8; //подгоняем размер так, что бы он был кратен 64(+8 байт для 2ого шага).
 
char *cIn=new char[size]; //создаем динамический массив для хранения сообщения, которое далее будет кодироваться
 
for(int i=0;i<length;i++) //первые length элементов сIn
 cIn[i]=sIn[i]; //заполняем символами входного сообщения
 
cIn[length]=0x80; //савим в конец сообщения единичный бит.
 
for(int i=length+1;i<size;i++) //а все остальное
 cIn[i]=0; //заполняем нулями
 
//Шаг 2.
__int64 bitLength=(uint)(length)*8; //длина сообщения в битах.
 
for(int i=0;i<8;i++) //последние 8 байт
 cIn[size-8+i]=(bitLength >> i*8); //заполняем 64-битным представлением длины данных до выравнивания
 
//Шаг 3.
A=0x67452301, //Инициализируем начальные значения регистров.
B=0xefcdab89,
C=0x98badcfe,
D=0x10325476;
uint T[64]; //64-элементная таблица данных (констатнт).
 
for(int i=0;i<63;i++) //всю таблицу констант
 T[i]= pow(2.0,32.0)*fabs(sin(i*1.0)); //заполняем в соответствии с алгоритмом.
 
uint *X=new uint[size/4]; //создаем массив Х, в котором будет 32-разрядное представление сообщения.
 
X=(uint*)(cIn); //загоняем в массив Х сообщение cIn(в данном случае оно само разбиваеться на 32-разрядные слова).
 
//или это можно сделать "вручную" следующим образом:
//for(int i = 0; i <size/4; i++ )
 //X[ i] =(uint)(cIn[ i*4 + 3]<<24) +(uint)(cIn [i*4 + 2]<<16) + (uint)(cIn[i*4 + 1]<<8) + (uint)(cIn [i*4 + 0]);
 
//Шаг 4.
uint AA, BB, CC, DD;
 
for(int i=0;i<size/4;i+=16)
 {
 AA = A;BB = B; CC = C; DD = D;
 
 //раунд 1
 A = B + RotateLeft((A + F(B,C,D) + X[i+ 0] + T[ 1]),  7);
 D = A + RotateLeft((D + F(A,B,C) + X[i+ 1] + T[ 2]), 12);
 C = D + RotateLeft((C + F(D,A,B) + X[i+ 2] + T[ 3]), 17);
 B = C + RotateLeft((B + F(C,D,A) + X[i+ 3] + T[ 4]), 22);
 
 A = B + RotateLeft((A + F(B,C,D) + X[i+ 4] + T[ 5]),  7);
 D = A + RotateLeft((D + F(A,B,C) + X[i+ 5] + T[ 6]), 12);
 C = D + RotateLeft((C + F(D,A,B) + X[i+ 6] + T[ 7]), 17);
 B = C + RotateLeft((B + F(C,D,A) + X[i+ 7] + T[ 8]), 22);
 
 A = B + RotateLeft((A + F(B,C,D) + X[i+ 8] + T[ 9]),  7);
 D = A + RotateLeft((D + F(A,B,C) + X[i+ 9] + T[10]), 12);
 C = D + RotateLeft((C + F(D,A,B) + X[i+10] + T[11]), 17);
 B = C + RotateLeft((B + F(C,D,A) + X[i+11] + T[12]), 22);
 
 A = B + RotateLeft((A + F(B,C,D) + X[i+12] + T[13]),  7);
 D = A + RotateLeft((D + F(A,B,C) + X[i+13] + T[14]), 12);
 C = D + RotateLeft((C + F(D,A,B) + X[i+14] + T[15]), 17);
 B = C + RotateLeft((B + F(C,D,A) + X[i+15] + T[16]), 22);
 
 //раунд 2
 A = B + RotateLeft((A + G(B,C,D) + X[i+ 1] + T[17]),  5);
 D = A + RotateLeft((D + G(A,B,C) + X[i+ 6] + T[18]),  9);
 C = D + RotateLeft((C + G(D,A,B) + X[i+11] + T[19]), 14);
 B = C + RotateLeft((B + G(C,D,A) + X[i+ 0] + T[20]), 20);
 
 A = B + RotateLeft((A + G(B,C,D) + X[i+ 5] + T[21]),  5);
 D = A + RotateLeft((D + G(A,B,C) + X[i+10] + T[22]),  9);
 C = D + RotateLeft((C + G(D,A,B) + X[i+15] + T[23]), 14);
 B = C + RotateLeft((B + G(C,D,A) + X[i+ 4] + T[24]), 20);
 
 A = B + RotateLeft((A + G(B,C,D) + X[i+ 9] + T[25]),  5);
 D = A + RotateLeft((D + G(A,B,C) + X[i+14] + T[26]),  9);
 C = D + RotateLeft((C + G(D,A,B) + X[i+ 3] + T[27]), 14);
 B = C + RotateLeft((B + G(C,D,A) + X[i+ 8] + T[28]), 20);
 
 A = B + RotateLeft((A + G(B,C,D) + X[i+13] + T[29]),  5);
 D = A + RotateLeft((D + G(A,B,C) + X[i+ 2] + T[30]),  9);
 C = D + RotateLeft((C + G(D,A,B) + X[i+ 7] + T[31]), 14);
 B = C + RotateLeft((B + G(C,D,A) + X[i+12] + T[32]), 20);
 
 //раунд 3
 A = B + RotateLeft((A + H(B,C,D) + X[i+ 5] + T[33]),  4);
 D = A + RotateLeft((D + H(A,B,C) + X[i+ 8] + T[34]), 11);
 C = D + RotateLeft((C + H(D,A,B) + X[i+11] + T[35]), 16);
 B = C + RotateLeft((B + H(C,D,A) + X[i+14] + T[36]), 23);
 
 A = B + RotateLeft((A + H(B,C,D) + X[i+ 1] + T[37]),  4);
 D = A + RotateLeft((D + H(A,B,C) + X[i+ 4] + T[38]), 11);
 C = D + RotateLeft((C + H(D,A,B) + X[i+ 7] + T[39]), 16);
 B = C + RotateLeft((B + H(C,D,A) + X[i+10] + T[40]), 23);
 
 A = B + RotateLeft((A + H(B,C,D) + X[i+13] + T[41]),  4);
 D = A + RotateLeft((D + H(A,B,C) + X[i+ 0] + T[42]), 11);
 C = D + RotateLeft((C + H(D,A,B) + X[i+ 3] + T[43]), 16);
 B = C + RotateLeft((B + H(C,D,A) + X[i+ 6] + T[44]), 23);
 
 A = B + RotateLeft((A + H(B,C,D) + X[i+ 9] + T[45]),  4);
 D = A + RotateLeft((D + H(A,B,C) + X[i+12] + T[46]), 11);
 C = D + RotateLeft((C + H(D,A,B) + X[i+15] + T[47]), 16);
 B = C + RotateLeft((B + H(C,D,A) + X[i+ 2] + T[48]), 23);
 
 //раунд 4
 A = B + RotateLeft((A + I(B,C,D) + X[i+ 0] + T[49]),  6);
 D = A + RotateLeft((D + I(A,B,C) + X[i+ 7] + T[50]), 10);
 C = D + RotateLeft((C + I(D,A,B) + X[i+14] + T[51]), 15);
 B = C + RotateLeft((B + I(C,D,A) + X[i+ 5] + T[52]), 21);
 
 A = B + RotateLeft((A + I(B,C,D) + X[i+12] + T[53]),  6);
 D = A + RotateLeft((D + I(A,B,C) + X[i+ 3] + T[54]), 10);
 C = D + RotateLeft((C + I(D,A,B) + X[i+10] + T[55]), 15);
 B = C + RotateLeft((B + I(C,D,A) + X[i+ 1] + T[56]), 21);
 
 A = B + RotateLeft((A + I(B,C,D) + X[i+ 8] + T[57]),  6);
 D = A + RotateLeft((D + I(A,B,C) + X[i+15] + T[58]), 10);
 C = D + RotateLeft((C + I(D,A,B) + X[i+ 6] + T[59]), 15);
 B = C + RotateLeft((B + I(C,D,A) + X[i+13] + T[60]), 21);
 
 A = B + RotateLeft((A + I(B,C,D) + X[i+ 4] + T[61]),  6);
 D = A + RotateLeft((D + I(A,B,C) + X[i+11] + T[62]), 10);
 C = D + RotateLeft((C + I(D,A,B) + X[i+ 2] + T[63]), 15);
 B = C + RotateLeft((B + I(C,D,A) + X[i+ 9] + T[64]), 21);
 
 A = AA + A;
 B = BB + B;
 C = CC + C;
 D = DD + D;
}
unsigned char key[4];
key[0] = A;
key[1] = B;
key[2] = C;
key[3] = D;
 
}
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) 
             {
                   string sIn;
  sIn = textBox1->Text;
  
  MD5_hash(sIn,A,B,C,D);
}
MrCold
853 / 751 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
25.10.2012, 00:28     Записать TextBox в string #6
сразу за #pragma once
C++
1
2
3
4
#include <iostream>
#include <string>
 
typedef unsigned int uint;
в пространства имен добавить
C++
1
using namespace Runtime::InteropServices;
код кнопки
C++
1
2
3
4
5
6
7
8
9
10
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
 
            
   const char* chars = (const char*)(Marshal::StringToHGlobalAnsi(textBox1->Text)).ToPointer();
 
   std::string sIn(chars); 
 
   MD5_hash(sIn,A,B,C,D);
 
   Marshal::FreeHGlobal(IntPtr((void*)chars));
На указателях можно спотыкнуться . Ну тогда выкладывайте все .
Yandex
Объявления
25.10.2012, 00:28     Записать TextBox в string
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru