|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Dbgrid + шифрование
помогить плз!!!
Как мне перевести string даные из ячейки dbgrid в переменую допустем так беру ячейку с даными допустим "Привед" и перевожу их так П-> 3 и помешаю значени в переменую а р -> 5 переменую b и->4 с в ->1 е->9 д ->2 если можно по потрбней или дайте сылку на подобную тему? |
#2
|
|||
|
|||
dbgrid здесь ни при чем. В dbgrid нет прямого доступа к значениям полей. dbgrid связана с данными через какой-либо DataSet и только отображает эти данные.
Через DataSet и надо получать значение поля текущей записи (активная в dbgrid строка). Код:
function DecodeEncodeStr(const S, Psw : String) : String; var I, J : Integer; begin Result := S; if (S = '') or (Psw = '') then Exit; J := 1; I := 1; while I <= Length(S) do begin if Result[i] = #13 then begin Inc(I, 2); continue end; Result[i] := Char(Byte(Result[i]) xor Byte(PSW[J])); if Result[i] = #0 then Result[i] := Psw[J]; if J = Length(PSW) then J := 1 else Inc(J); Inc(I); end; end; //шифрование и дешифрование строкового поля активной в dbgrid записи procedure TForm1.Button1Click(Sender : TObject); begin Str := DataSet1.FieldByName('FIELD2').AsString; DataSet1.Edit; DataSet1.FieldByName('FIELD2').AsString := DecodeEncodeStr(Str, Psw); DataSet1.Post; //"FIELD2" - для примера. end; "S" - исходная строка, которую нужно шифровать или дешифровать; "Psw" - строка, на основе которой происходит преобразование исходной. Может быть произвольной длины (более 2 символов). Должна состоять из русских букв и/или цифр. Зашифрованая этой функцией строка должна с помощью её и дешифровываться с одинаковым набором символов в параметре "Psw". Не забывайте делать резервные копии Последний раз редактировалось san-46, 23.11.2008 в 08:45. |