Проблема такая: с Вашего форума взял пример кодировки/раскодировки строк. Вот он:
| Код | Function Codec(Input, Key: PChar): PChar; Var I:Integer; J:Integer; Tmps:String; Text:String; Begin Result:=PAnsiChar(''); Text:=Input; For I:=1 To Length(Text) Do Begin IF I>Length(Key) Then J:=I Mod Length(Key) Else J:=I; Tmps:=Tmps+Chr((Ord(Text[I])) XOR (Ord(Key[J]))); End; {For} Result:=PChar(Tmps); end;
|
Однако, когда я начинаю записывать полученные закодированные строки в файл ini, то в этот файл на самом деле записывается совсем не то. Идет подмена символов. Что самое интересное, делаю вот так:
| Код | Str.Add(Codec(PChar(ConnectSection),PChar(GetCompName))); //0 ... Str.Add(Codec(PChar(ConnectLoginIdent),PChar(GetCompName))); //3 Str.Add(Codec(PChar(edLogin.Text),PChar(GetCompName))); //4
With Ini Do Begin .... WriteString(Str.Strings[0],Str.Strings[3],Str.Strings[4]); //Строка 1 ShowMessage(ReadString(Str.Strings[0],Str.Strings[3],'')); //Строка 2 End; {With}
|
И вот в строке 1 значение Str.Strings[4] не совпадает с тем, что выводит ShowMessage(строка 2). И что самое интересное - ShowMesssage вообще показывает пустую строку!!! Никто не знает, в чем может быть проблема и как ее можно обойти?
Да, в работе использовалась Delphi 7 Enterprise |