Программу я написал, но возникла проблема. После того как я зашифровал, а потом дешифровал текст, в Memo этот текст отображается с новыми переносами строки. Не буду многословным, смотрите скрины.
Первоначальное состояние текста:

После шифрования и дешифрования:

Пожалуйста, помогите решить эту проблему.
Вот исходник класса, который занимается шифрованием/дешифрованием:
| Код | class Cryptographer { public: static void Encryption(TStringList * list, UnicodeString key) { if (key == "") { return; } UnicodeString str; for (int i = 0; i < list->Count; i++) { str = list->Strings[i]; for (int j = 1, k = key.Length(); j <= list->Strings[i].Length(); j++, k--) { if (k == 0) { k = key.Length(); } wchar_t symbol = int(str[j]) + int(key[k]); str[j] = symbol; } list->Strings[i] = str; } } static void Decoding(TStringList *list, UnicodeString key) { if (key == "") { return; } UnicodeString str; for (int i = 0; i < list->Count; i++) { str = list->Strings[i]; for (int j = 1, k = key.Length(); j <= list->Strings[i].Length(); j++, k--) { if (k == 0) { k = key.Length(); } wchar_t symbol = int(str[j]) - int(key[k]); str[j] = symbol; } list->Strings[i] = str; } } };
|
Вот функция, которая работает с этим классом:
| Код | void TMainForm::EncryptOrDecrypt(int my_switch) { if (my_switch != 0 && my_switch != 1) { return; } TStringList * list = new TStringList; list->AddStrings(MainMemo->Lines); wchar_t str[]={29408,30400,0}; UnicodeString pass = str;
if (my_switch == 0) { Cryptographer::Encryption(list, pass); } else { Cryptographer::Decoding(list, pass); }
MainMemo->Clear(); MainMemo->Lines->AddStrings(list); delete list; }
|
|