
В следующем коде:
- Код: Выделить всё
var f: TMemorystream;
m: pbytearray;
i: integer;
k: byte;
begin
f:=tmemorystream.create;
f.loadfromfile(filename);
m:=f.Memory;
k:=$ce;
for i:=0 to f.size-1 do
begin
m[i]:=(m[i] xor k)
inc(k);
end;
end;
Модератор: Модераторы
var f: TMemorystream;
m: pbytearray;
i: integer;
k: byte;
begin
f:=tmemorystream.create;
f.loadfromfile(filename);
m:=f.Memory;
k:=$ce;
for i:=0 to f.size-1 do
begin
m[i]:=(m[i] xor k)
inc(k);
end;
end;
m^[i]:=(m^[i] xor k)
vsChar(Byte(Str[j])
, я бы все привел к одному типу.Byte(aKey[i]))
MiniQ писал(а):по этому лучше использовать ansistring.
pi1 писал(а):Мораль- нужно избавиться от рудимента в своей логике при работе с типом string и использовать конкретно ansisttring или utf8string
bormant писал(а):Mirage,
поясните, в чем смысл вместо приведения типов использовать функции?
Правда, следует признать, что конкретно в этом случае результат должен получится не хуже (такие уж это функции в силу магии компилятора).
MiniQ писал(а):Сама логика шифрования XORом по строке с переменным размером символа - ущербна. После шифрования это уже небудет являться строкой в общем случае.
zub писал(а):но строкой с нормальными доступом по [индексу] вполне останется
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 237