В чем проблема - сейчас пользователь пишет, что у него программа в хаотичном порядке портит текст комментариев, которые были к напоминаниям. Может неделю все быть хорошо, а может за день раз пять все превратится в иероглифы. Когда писал программу, то для хранения данных использовал INI файлы. А поскольку непонятно было, что в комментарии может оказаться, я перед записью его преобразовывал в строку цифр. Все это было на Turbo Delphi. Не так давно на ХабраХабр была статья, про ошибку записи байта в жестких дисках одного производителя, когда тот работал с одновременно включенным другим устройством на своей шине. На 99% уверен, что косяк мой. Но вот прочтенная история на хабре, очень удачно укладывается в мою проблему, потому что если испортить один символ, то мои функции работать не будут. Хотя кто знает.
Есть какие нибудь библиотеки чтобы сравнивать файл загруженный в память и файл на диске?
- Код: Выделить всё
- Function CommentEnc(Comment:string):string;
 var
 s,s2:string;
 i,c,k:integer;
 begin
 c:=length(Comment);
 s:='';
 for i:=c downto 1 do begin
 s2:=Comment[i];
 k:=ord(s2[1]);
 if k<10 then
 s:=s+'00'+inttostr(k)
 else if (k<100)and(k>9) then
 s:=s+'0'+inttostr(k)
 else
 s:=s+inttostr(k);
 end;
 result:=s;
 end;
 Function CommentDec(Comment:string):string;
 var
 s,s2:string;
 i,c,k:integer;
 begin
 s:='';
 c:=length(Comment);
 i:=c-2;
 while i>0 do begin
 s2:=copy(Comment,i,3);
 k:=strtoint(s2);
 s:=s+char(k);
 i:=i-3;
 end;
 result:=s;
 end;




