{
AnsiString e=Memo1->Text, t="",m;
int d=e.Length();
char s;
int i=1, ascii, diff;
while (i<=d)
{
s=e;
ascii = s;
diff=Edit1->Text.ToInt()-ascii; // В эдите цифрвы в качестве пароля.
m = (char)diff;
t+=m;
i++;
}
StringGrid шифрование. Перед записью.
[CPP]
Баттнклиск:
{
sdialogexe = 3 ;
for(int i = 0 ; i<StringGrid1->RowCount ; i++)
{
Table1->Strings = StringGrid1->Rows->DelimitedText ;
}
if(SaveDialog1->Execute())
{
SAVE = SaveDialog1->FileName ;
Table1->SaveToFile(SAVE + ".txt") ;
}
}[/CPP]
выше код кнопки.
Решил пользоваться самым простым методом шифра:
[CPP]AnsiString XOR_Crypt(AnsiString in, AnsiString pass)
{
AnsiString out;
for (int x=1;x<in.Length()+1;x++)
{
out += (char)(in[x] ^ pass[x%pass.Length()+1]);
}
return out;
}[/CPP]
С мемо всё просто например: Memo1->Text = XOR_Crypt("VVV\x0FRNTSBDR\x0FST","!"); - всё работает.
Или другой вариант:
{
AnsiString e=Memo1->Text, t="",m;
int d=e.Length();
char s;
int i=1, ascii, diff;
while (i<=d)
{
s=e;
ascii = s;
diff=Edit1->Text.ToInt()-ascii; // В эдите цифрвы в качестве пароля.
m = (char)diff;
t+=m;
i++;
}
Тут тоже всё работает безупречно...
А со стринггридом некак неразберуся...
Думал создать на форме мемо невидимую и в неё из стрингрида перепесывать данные а потом это мемо шифровать. Тоже не получилось. Поможете? (В стрингриде колитчесво строк неизвестно каждый раз новое.. столбцов 10 всегда....) Был ещё также вариант уже сохранённый файл открывать и шифровать но неудобно получается..
Приму любые коды, советы, выходы из ситуации...
Цитата:
Как поймать этот поток перед записью в тестовик???
Если я правильно вас понял, что информацию из СтрингГрид надо кодировать перед тем как записать в файл, то я могу предложить:
1. Информацию каждой ячейки записать например в строку;
2. Произвести кодирование строки;
3. Создать поток для работы с нужным файлом;
4. Записать кодированную сироку в этот файл.
Цитата:
Как осуществить шифрование?
Хмм.. кодируйте как всегда кодировали, не вижу проблемы.
Кстати в вашем втором способе я очень сомневаюсь, думаю для вас будет проблемой произвести процесс декодирования.
Код:
Посторайтесь понять и разобраться в своём коде.
Создайте свой шифрующий поток и сохраняйте в него.