Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ циклы в с++, решение задач http://www.cyberforum.ru/cpp-beginners/thread679730.html
Помогите написать код в С++ (с помощью циклов (!) )... Вводится последовательность из n целых чисел (n задается с клавиатуры). Найти количество чисел, больших обоих своих соседей (локальных...
C++ Даны множества А и В , состоящие соответственно из Даны множества А и В , состоящие соответственно из N1 и N2 точек (точки заданы своими координатами x,y). Найти минимальное расстояние между точками этих множеств и сами точки , расположенные на... http://www.cyberforum.ru/cpp-beginners/thread679722.html
Найти Булеан множества типа {a,b,c} C++
Доброго времени суток, помогите написать метод нахождения булеана множества. Булеан множества - множество все возможных подножеств искомого множества. Пример: A={a,b,c}; Булеан А = {{}, {a}, {b},...
C++ Кто может сделать олимпиадную задачу?
Нашел одну олимпиадную задачу, не знаю как ее решить. Кто-нибудь может? Четырехзначное число, записанное в восьмеричной системе счисления имеет старшим разрядом единицу. Если эту единицу...
C++ Найти максимальное количество подряд идущих минимальных элементов из данного набора http://www.cyberforum.ru/cpp-beginners/thread679716.html
Дано целое число N и набор из N целых чисел. Найти максимальное количество подряд идущих минимальных элементов из данного набора. Выполнить без применения функций.
C++ Дана матрица N на M Записать в другой массив строку Дана матрица N x M.Записать в другой массив строку, составленную из сумм отрицательных элементов столбцов матрицы. Выполнить без использования процедур и функций. подробнее

Показать сообщение отдельно
Crait
0 / 0 / 0
Регистрация: 26.09.2012
Сообщений: 32
24.10.2012, 23:14  [ТС]
Цитата Сообщение от MrCold Посмотреть сообщение
Можно - возни много .Код , что ль, покажите свой .. Может кто решится .

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

Так вот же оно
http://msdn.microsoft.com/en-US/library/1b4az623(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);
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru