Не знаю зачем я это запостил, мб кому пригодится.
В общем что такое спинтакс, это такая лабуда которая генерит уникальный текст из шаблона.
Ну например,
после обработки парсером спинтакс, будет одно слово либо Привет либо Здравствуйте.
Полезно для всяких рассыльщиков.
Вот класс для Delphi (писал в XE3) на 7-дьмой не заработает.
Юзаем так:
В общем что такое спинтакс, это такая лабуда которая генерит уникальный текст из шаблона.
Ну например,
Код:
{Привет|Здравствуйте}
Полезно для всяких рассыльщиков.
Вот класс для Delphi (писал в XE3) на 7-дьмой не заработает.
Код:
unit SpinTax;
interface
uses
SysUtils,StrUtils,RegularExpressions,Types;
{ SpinTax }
type
TSpinTax = class(TObject)
private
class function Evaluator(const Match: TMatch): string;
protected
public
class function SpinTax(input: string): string;
published
end;
type
St = TSpinTax;
implementation
class function TSpinTax.Evaluator(const Match: TMatch): string;
var
list: TStringDynArray;
begin
list :=SplitString(Copy(Match.Value,2,length(Match.Value)-2),'|');
Randomize;
result :=List[Random(length(list))]
end;
class function TSpinTax.SpinTax(input:string):string;
var
RegExp:TRegEx;
ev:TMatchEvaluator;
begin
ev := Evaluator;
RegExp :=TRegEx.Create('\{(.*?)\}');
if not RegExp.IsMatch(input) then begin
result :=input;
exit;
end;
result := RegExp.Replace(input,Evaluator);
end;
end.
Код:
Uses
...,SpinTax;
....
begin
memo1.text :=St.SpinTax(memo2.text);