Дата публикации: ____________________
Название публикации: ________________
Ключевые слова: _____________________
Автор публикации: ___________________
Текст публикации: ___________________
Сопоставленные рубрики: _______________
Приложение 2. Текст программы
unit uMain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, OleServer, WordXP;
type
TfrmMain = class(TForm)
mnMain: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
N11: TMenuItem;
wa: TWordApplication;
wd: TWordDocument;
wf: TWordFont;
N12: TMenuItem;
procedure N2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure N7Click(Sender: TObject);
procedure N9Click(Sender: TObject);
procedure N11Click(Sender: TObject);
procedure N12Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmMain: TfrmMain;
implementation
uses uInputModule, uClassify, uEditDictModule, uClassifySettings,
uDataModule, uGetFileName, uEditPubl;
{$R *.dfm}
procedure TfrmMain.N2Click(Sender: TObject);
begin
frmInputForm.ShowModal;
procedure TfrmMain.N3Click(Sender: TObject);
frmClassify.ShowModal;
procedure TfrmMain.N5Click(Sender: TObject);
frmEditDict.ShowModal;
procedure TfrmMain.N7Click(Sender: TObject);
frmClassifySettings.ShowModal;
procedure TfrmMain.N9Click(Sender: TObject);
Close;
procedure TfrmMain.N11Click(Sender: TObject);
var tmpl, Template, NewTemplate, ItemIndex: olevariant;
ARange: Range;
pars: Paragraphs;
par: Paragraph;
st: string;
vcol: OleVariant;
iStat: integer;
dmIAS.aqFiles.Close;
dmIAS.aqFiles.Open;
frmGetFileName.cbFiles.Items.Clear;
frmGetFileName.cbFiles.Text:= dmIAS.aqFiles.FieldByName('file').AsString;
while not dmIAS.aqFiles.Eof do
frmGetFileName.cbFiles.Items.Add(dmIAS.aqFiles.FieldByName('file').AsString);
dmIAS.aqFiles.Next;
frmGetFileName.iMD:= 0;
frmGetFileName.ShowModal;
if (frmGetFileName.iMD = 0) or (frmGetFileName.cbFiles.Text = '')
then exit;
dmIAS.aqExe.Close;
dmIAS.aqExe.SQL.Text:= 'Select * from qObrPubl where file = :file';
dmIAS.aqExe.Parameters.ParamByName('file').Value:= frmGetFileName.cbFiles.Text;
dmIAS.aqExe.Open;
try
wa.Connect;
wa.Visible := True;
except
MessageDlg('А у Вас Word не установлен :(', mtError, [mbOk], 0);
Abort;
ItemIndex:= 1;
Template:= EmptyParam;
NewTemplate := False;
// Создание документа
wa.Documents.Add(Template, NewTemplate, EmptyParam, EmptyParam) ;
wd.ConnectTo(wa.Documents.Item(ItemIndex));
wd.PageSetup.Set_Orientation(wdOrientLandscape);
wa.Options.CheckSpellingAsYouType := False;
wa.Options.CheckGrammarAsYouType := False;
ARange:= wd.Range(EmptyParam, EmptyParam);
pars:= wd.Paragraphs;
tmpl:= ARange;
par:= pars.Add(tmpl);
wf.ConnectTo(wd.Sentences.Get_Last.Font);
wd.Range.Paragraphs.Set_Alignment(wdAlignParagraphLeft);
wa.Selection.Font.Bold:= 1;
wa.Selection.Font.Size:= 16;
st:= 'Отчет по обработанным статьям файла ' + frmGetFileName.cbFiles.Text;
wa.Selection.InsertAfter(st+#13);
wa.Selection.InsertAfter(' '+#13);
vcol := wdCollapseEnd;
wa.Selection.Collapse(vcol);
iStat:= -1;
while not dmIAS.aqExe.Eof do
if iStat <> dmIAS.aqExe.FieldByName('id_publ').AsInteger
then
wa.Selection.Font.Bold:= 0;
wa.Selection.Font.Size:= 14;
st:= 'Дата публикации: ';
wa.Selection.InsertAfter(st);
if (dmIAS.aqExe.FieldByName('data').AsString = '30.12.1899')
then st:= ' '
else st:= dmIAS.aqExe.FieldByName('data').AsString;
st:= 'Название публикации: ';
st:= dmIAS.aqExe.FieldByName('name_publ').AsString;
st:= 'Ключевые слова: ';
st:= dmIAS.aqExe.FieldByName('keywords').AsString;
st:= 'Автор публикации: ';
st:= dmIAS.aqExe.FieldByName('author').AsString;
st:= 'Текст публикации: ';
st:= dmIAS.aqExe.FieldByName('text_publ').AsString;
st:= 'Сопоставленные рубрики:';
st:= dmIAS.aqExe.FieldByName('indx').AsString
+ ' '
+ dmIAS.aqExe.FieldByName('name_r').AsString;
iStat:= dmIAS.aqExe.FieldByName('id_publ').AsInteger;
end
else
dmIAS.aqExe.Next;
wa.Disconnect;
procedure TfrmMain.N12Click(Sender: TObject);
frmEditPubl.ShowModal;
end.
unit uFuzzySearch;
function IndistinctMatching(MaxMatching:Integer; strInputMatching:WideString; strInputStandart:WideString):Integer;
uses SysUtils;
TRetCount = packed record
lngSubRows : Word;
lngCountLike : Word;
function Matching(StrInputA:WideString; StrInputB:WideString; lngLen:Integer):TRetCount;
Var
TempRet : TRetCount;
PosStrB : Integer;
PosStrA : Integer;
StrA : WideString;
StrB : WideString;
StrTempA : WideString;
StrTempB : WideString;
StrA := String(StrInputA);
StrB := String(StrInputB);
For PosStrA:= 1 To Length(strA) - lngLen + 1 do
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9