![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
помогить плз!!!
Как мне перевести 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. |