Цитата:
Сообщение от DJ PhoeniX
Базовая часть работает, надо проверять на "модулях".
У кого есть желание, накидайте дллку на любую кодировку...
Для тестирующего приложения, кликаем по полю ввода "ПКМ".
П.С. Вообще ни фига не оптимизировано, писал "в лоб". Только для проверки.
|
Ненравится.
Собственно, замечания.
1. Я бы сделал через классы. Почему - см. дальше.
2. Нет поддержки "Из коробки" некоторого набора форматов.
Т.е. что я хочу:
Код:
TFormatterBase=class // Базовый класс. Здесь описан интерфейс.
...
public
procedure SaveToFile(AStream : TStream; AText : String); virtual; abstract;
function LoadFromFile(AStream : TStream) : String; virtual; abstract;
function IsFormat(AStream : TStream) : Boolean; virtual; abstract;
end;
TFormatterAnsi=class(TFormatterBase) // Встроеный для ansi
...
end;
TFormatterUTF8=class(TFormatterBase) // Встроеный для UTF8
...
end;
TFormatterUnicode=class(TFormatterBase) // Встроеный для Unicode
...
end;
TFormatterDLL=class(TFormatterBase) // Встроеный для внешних кодеков
...
end;
TFormatterManager=class // Менеджер кодеков
...
public
constructor Create(AEdit : TSynEdit); // запоминаем ссылку на редактор
procedure LoadFromFile(AFileName : String);
procedure SaveTofile(AFileName : String; AFormatter : String = '');
end;
Если неясно почему именно так, то спрашивайте.