Показать сообщение отдельно
  #53  
Старый 15.07.2010, 21:47
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Цитата:
Сообщение от 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;

Если неясно почему именно так, то спрашивайте.
Ответить с цитированием