Автоматизированная интеллектуальная система классификации информационных сообщений средств массовой информации

Схема организационной структуры управления информационных и аналитических технологий аппарата администрации. Математическая постановка задачи классификации информационных сообщений СМИ. Описание информационного обеспечения на примере АИС "Классификатор".

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 28.07.2009
Размер файла 677,2 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Была рассчитана надежность системы на всех этапах ее развития.

Результатом проделанной работы является программа, выполняющая следующие функции:

- ведение информационной базы: формирование, добавление записи, изменение записи, удаление записи, сохранение записи, согласованное с работой всего объекта автоматизации;

- обработка информационных сообщений СМИ: открытие списка текстовых файлов в каталоге, открытие файла, считывание строки из файла, запись информационных сообщений СМИ в базу, закрытие файла;

- настройка параметров: определение каталога с файлами, задание расширения файлов с исходными данными, настройка расширения файлов, настройка параметров классификации;

- открытость структуры рубрикатора и словаря, то есть возможность оперативной их корректировки;

- классификация информационных сообщений СМИ: поиск записей по различным ключам словаря с помощью метода нечеткого поиска, классификация сообщений по результатам поиска, формирование рекомендаций для принятия решений, формирование отчетов.

При выполнении дипломного проекта особое внимание было уделено информационным характеристикам решаемой задачи, проведен анализ информации, поступающей в систему для обработки, учтены все требования, предъявляемые к решению поставленной задачи. Также был рассчитан экономический эффект от внедрения разработки, рассмотрены вопросы охраны труда.

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1. ГОСТ 2.105-95. ЕСКД. Общие требования к текстовым документам.

2. ГОСТ Р50.1.028-2001. Методология функционального моделирования.

3. ГОСТ 28195-89. Оценка качества программных средств.

4. ГОСТ 19.102-77.ЕСПД. Стадии разработки.

5. ГОСТ 19.402-78.ЕСПД. Описание программы.

6. ГОСТ 12.1.005-88 Общие санитарно-гигиенические требования к воздуху в рабочей зоне.

7. ГОСТ 19.701-90 Схемы алгоритмов, программ, данных и систем.

8. ГОСТ 34.201-89 Информационная технология. Виды, комплектность и обозначение документов при создании автоматизированных систем.

9. ГОСТ 34.602-89 Информационная технология. Техническое задание на создание автоматизированной системы.

10. СанПиН 2.2.2/2.4.1340-03 Гигиенические требования к персональным электронно-вычислительным машинам и организации работы.

11. Р.2.2.2006-05 Гигиенические критерии оценки условий труда по показателям вредности и опасности окружающей среды, тяжести и напряженности трудового процесса.

12. СанПиН 2.2.548-96 Общие санитарно-гигиенические требования к воздуху в рабочей зоне.

13. Андрейчиков А.В., Андрейчикова О.Н. Интеллектуальные информационные системы: Учебник. - М.: Финансы и статистика, 2004. - 424 с.: ил.

14. Базы данных в Delphi 7. Самоучитель/ В. Понамарев. - СПб.: Питер, 2003. - 224 с.: ил.

15. Башмаков А.И., Башмаков И.А. Интеллектуальные информационные технологии: Учеб. пособие. - М.: Изд-во МГТУ им. Н.Э. Баумана, 2005. - 304 с.: ил.

16. Бобровский С.И. Delphi 7. Учебный курс.- СПб.: Питер, 2003. - 736с.

17. Глушаков С.В., Клевцов А.Л. Программирование в среде Delphi 7. - Харьков: Фолио, 2003. - 528с.

18. Гофман В.Э., Хомоненко А.Д. Работа с базами данных в Delphi / В. - 2-е изд. - СПб.: БХВ - Петербург, 2002. - 624с.: ил.

19. Девятков В.В. Системы искусственного интеллекта: Учеб. пособие для вузов. - М.: Изд-во МГТУ им. Н.Э. Баумана, 2001. - 352 с.: ил.

20. Диго С.М. Проектирование баз данных: Учебник. - М.: Финансы и статистика, 1988. - 216с.

21. Дубнов П.Ю. Access 2000: Программирование баз данных. - М.: ДМК, 2000. - 272с.: ил.

22. Пономарев В. Базы данных в Delphi 7: Самоучитель. - М. и др.: Питер, 2003. - 224с.: ил.

23. Средства защиты в машиностроении: Расчет и проектирование: Справочник/С.В. Белов, А.Ф. Козьяков, О.Ф. Партолин и др.; Под ред. С.В. Белова. - М.: Машиностроение, 1989. - 368 с.: ил.

24. Типовые нормы времени на программирование задач для ЭВМ. - М.: Экономика, 1989.

25. http://google.ru/com/str.zip

26. http://google.ru//narod.ru/Hem/infon.zip

Приложение 1. Структура входных и выходных документов

Результаты классификации информационных сообщений СМИ

Код

Наименование рубрики

Название

Текст

Ключевые слова

Результат

Отчет по результатам классификации статьи

Дата публикации:_________________

Файл публикации:________________

Название публикации:_____________

Ключевые слова:__________________

Автор публикации: ________________

Текст публикации: _______________

Код

Наименование

По названию

По тексту

По ключевым словам

Результат

Отчет по обработанным статьям файла

Дата публикации: ____________________

Название публикации: ________________

Ключевые слова: _____________________

Автор публикации: ___________________

Текст публикации: ___________________

Сопоставленные рубрики: _______________

Приложение 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;

end;

procedure TfrmMain.N3Click(Sender: TObject);

begin

frmClassify.ShowModal;

end;

procedure TfrmMain.N5Click(Sender: TObject);

begin

frmEditDict.ShowModal;

end;

procedure TfrmMain.N7Click(Sender: TObject);

begin

frmClassifySettings.ShowModal;

end;

procedure TfrmMain.N9Click(Sender: TObject);

begin

Close;

end;

procedure TfrmMain.N11Click(Sender: TObject);

var tmpl, Template, NewTemplate, ItemIndex: olevariant;

ARange: Range;

pars: Paragraphs;

par: Paragraph;

st: string;

vcol: OleVariant;

iStat: integer;

begin

dmIAS.aqFiles.Close;

dmIAS.aqFiles.Open;

frmGetFileName.cbFiles.Items.Clear;

frmGetFileName.cbFiles.Text:= dmIAS.aqFiles.FieldByName('file').AsString;

while not dmIAS.aqFiles.Eof do

begin

frmGetFileName.cbFiles.Items.Add(dmIAS.aqFiles.FieldByName('file').AsString);

dmIAS.aqFiles.Next;

end;

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;

end;

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

begin

if iStat <> dmIAS.aqExe.FieldByName('id_publ').AsInteger

then

begin

vcol := wdCollapseEnd;

wa.Selection.Collapse(vcol);

wa.Selection.Font.Bold:= 0;

wa.Selection.Font.Size:= 14;

wa.Selection.InsertAfter(' '+#13);

wa.Selection.InsertAfter(' '+#13);

st:= 'Дата публикации: ';

wa.Selection.InsertAfter(st);

vcol := wdCollapseEnd;

wa.Selection.Collapse(vcol);

if (dmIAS.aqExe.FieldByName('data').AsString = '30.12.1899')

then st:= ' '

else st:= dmIAS.aqExe.FieldByName('data').AsString;

wa.Selection.InsertAfter(st+#13);

vcol := wdCollapseEnd;

wa.Selection.Collapse(vcol);

st:= 'Название публикации: ';

wa.Selection.InsertAfter(st);

vcol := wdCollapseEnd;

wa.Selection.Collapse(vcol);

st:= dmIAS.aqExe.FieldByName('name_publ').AsString;

wa.Selection.InsertAfter(st+#13);

vcol := wdCollapseEnd;

wa.Selection.Collapse(vcol);

st:= 'Ключевые слова: ';

wa.Selection.InsertAfter(st);

vcol := wdCollapseEnd;

wa.Selection.Collapse(vcol);

st:= dmIAS.aqExe.FieldByName('keywords').AsString;

wa.Selection.InsertAfter(st+#13);

vcol := wdCollapseEnd;

wa.Selection.Collapse(vcol);

st:= 'Автор публикации: ';

wa.Selection.InsertAfter(st);

vcol := wdCollapseEnd;

wa.Selection.Collapse(vcol);

st:= dmIAS.aqExe.FieldByName('author').AsString;

wa.Selection.InsertAfter(st+#13);

vcol := wdCollapseEnd;

wa.Selection.Collapse(vcol);

st:= 'Текст публикации: ';

wa.Selection.InsertAfter(st);

vcol := wdCollapseEnd;

wa.Selection.Collapse(vcol);

st:= dmIAS.aqExe.FieldByName('text_publ').AsString;

wa.Selection.InsertAfter(st+#13);

vcol := wdCollapseEnd;

wa.Selection.Collapse(vcol);

st:= 'Сопоставленные рубрики:';

wa.Selection.InsertAfter(st+#13);

vcol := wdCollapseEnd;

wa.Selection.Collapse(vcol);

st:= dmIAS.aqExe.FieldByName('indx').AsString

+ ' '

+ dmIAS.aqExe.FieldByName('name_r').AsString;

wa.Selection.InsertAfter(st);

vcol := wdCollapseEnd;

wa.Selection.Collapse(vcol);

iStat:= dmIAS.aqExe.FieldByName('id_publ').AsInteger;

end

else

begin

wa.Selection.InsertAfter(' '+#13);

st:= dmIAS.aqExe.FieldByName('indx').AsString

+ ' '

+ dmIAS.aqExe.FieldByName('name_r').AsString;

wa.Selection.InsertAfter(st);

vcol := wdCollapseEnd;

wa.Selection.Collapse(vcol);

end;

dmIAS.aqExe.Next;

end;

wa.Disconnect;

end;

procedure TfrmMain.N12Click(Sender: TObject);

begin

frmEditPubl.ShowModal;

end;

end.

unit uFuzzySearch;

interface

function IndistinctMatching(MaxMatching:Integer; strInputMatching:WideString; strInputStandart:WideString):Integer;

implementation

uses SysUtils;

type

TRetCount = packed record

lngSubRows : Word;

lngCountLike : Word;

end;

function Matching(StrInputA:WideString; StrInputB:WideString; lngLen:Integer):TRetCount;

Var

TempRet : TRetCount;

PosStrB : Integer;

PosStrA : Integer;

StrA : WideString;

StrB : WideString;

StrTempA : WideString;

StrTempB : WideString;

begin

StrA := String(StrInputA);

StrB := String(StrInputB);

For PosStrA:= 1 To Length(strA) - lngLen + 1 do

begin

StrTempA:= System.Copy(strA, PosStrA, lngLen);

For PosStrB:= 1 To Length(strB) - lngLen + 1 do

begin

StrTempB:= System.Copy(strB, PosStrB, lngLen);

If SysUtils.AnsiCompareText(StrTempA,StrTempB) = 0 Then

begin

Inc(TempRet.lngCountLike);

break;

end;

end;

Inc(TempRet.lngSubRows);

end; // PosStrA

Matching.lngCountLike:= TempRet.lngCountLike;

Matching.lngSubRows := TempRet.lngSubRows;

end; { function }

//------------------------------------------------------------------------------

function IndistinctMatching(MaxMatching:Integer; strInputMatching:WideString; strInputStandart:WideString):Integer;

Var

gret : TRetCount;

tret : TRetCount;

lngCurLen: Integer ; //текущая длина подстроки

begin

//если не передан какой-либо параметр, то выход

If (MaxMatching = 0) Or (Length(strInputMatching) = 0) Or

(Length(strInputStandart) = 0) Then

begin

IndistinctMatching:= 0;

exit;

end;

gret.lngCountLike:= 0;

gret.lngSubRows := 0;

// Цикл прохода по длине сравниваемой фразы

For lngCurLen:= 1 To MaxMatching do

begin

//Сравниваем строку A со строкой B

tret:= Matching(strInputMatching, strInputStandart, lngCurLen);

gret.lngCountLike := gret.lngCountLike + tret.lngCountLike;

gret.lngSubRows := gret.lngSubRows + tret.lngSubRows;

//Сравниваем строку B со строкой A

//tret:= Matching(strInputStandart, strInputMatching, lngCurLen);

//gret.lngCountLike := gret.lngCountLike + tret.lngCountLike;

//gret.lngSubRows := gret.lngSubRows + tret.lngSubRows;

end;

If gret.lngSubRows = 0 Then

begin

IndistinctMatching:= 0;

exit;

end;

IndistinctMatching:= Trunc((gret.lngCountLike / gret.lngSubRows) * 100);

end;

end.

unit uClassify;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ExtCtrls, Mask, DBCtrls, Grids, DBGridEh, ComCtrls,

WordXP, OleServer;

type

TfrmClassify = class(TForm)

Panel1: TPanel;

Panel2: TPanel;

Label1: TLabel;

DBNavigator1: TDBNavigator;

dbmText: TDBMemo;

Panel3: TPanel;

Label7: TLabel;

Button2: TButton;

Panel4: TPanel;

Label6: TLabel;

Label3: TLabel;

dbAuthor: TDBEdit;

Label2: TLabel;

dbDate: TDBEdit;

Label4: TLabel;

dbName: TDBEdit;

Label5: TLabel;

dbKeywords: TDBEdit;

pbClassify: TProgressBar;

dbgClassify: TDBGridEh;

Button1: TButton;

Label8: TLabel;

dbFile: TDBEdit;

lblCountArticles: TLabel;

Button3: TButton;

wd: TWordDocument;

wa: TWordApplication;

wf: TWordFont;

procedure SetDBElemColor(flColor: boolean);

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure FormShow(Sender: TObject);

procedure Button3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frmClassify: TfrmClassify;

implementation

uses uDataModule, uFuzzySearch, uClassifySettings, uStructs;

{$R *.dfm}

procedure TfrmClassify.SetDBElemColor(flColor: boolean);

begin

if frmClassify = nil

then exit;

if flColor

then

begin

dbName.Color:= clMoneyGreen;

dbKeywords.Color:= clMoneyGreen;

dbmText.Color:= clMoneyGreen;

end

else

begin

dbName.Color:= clWindow;

dbKeywords.Color:= clWindow;

dbmText.Color:= clWindow;

end;

end;

procedure TfrmClassify.Button1Click(Sender: TObject);

var id_publ, id_rubr, level,

Name_cnt, Text_cnt, Key_cnt, im,

iNamePorog12, iTextPorog12, iKeyPorog12,

iNamePorog23, iTextPorog23, iKeyPorog23,

iFuzzyPorog: integer;

stWord, res: string;

function GetRes(NameCnt, TextCnt, KeyCnt: integer): String;

begin

if (NameCnt < iNamePorog12)

and (TextCnt < iTextPorog12)

and (KeyCnt < iKeyPorog12)

then result:= '-'

else

if (NameCnt >= iNamePorog23)

or (TextCnt >= iTextPorog23)

or (KeyCnt >= iKeyPorog23)

then result:= '+'

else result:= '?';

end;

begin

// Устанавливаем пороги срабатывания

iNamePorog12:= frmClassifySettings.GetNamePorog(12);

iTextPorog12:= frmClassifySettings.GetTextPorog(12);

iKeyPorog12:= frmClassifySettings.GetKeyPorog(12);

iNamePorog23:= frmClassifySettings.GetNamePorog(23);

iTextPorog23:= frmClassifySettings.GetTextPorog(23);

iKeyPorog23:= frmClassifySettings.GetKeyPorog(23);

iFuzzyPorog:= frmClassifySettings.GetFuzzyPorog;

// Начинаем классификацию

dmIAS.aqDict.Close;

dmIAS.aqDict.Open;

dmIAS.TruncClassify;

pbClassify.Position:= 0;

pbClassify.Max:= dmIAS.atPublikatsii.RecordCount * (dmIAS.aqDict.RecordCount+1);

with dmIAS.atPublikatsii do

begin

First;

while not Eof do

begin

id_publ:= FieldByName('id_publ').AsInteger;

Name_cnt:= 0;

Text_cnt:= 0;

Key_cnt:= 0;

dmIAS.aqDict.First;

id_rubr:= dmIAS.aqDict.FieldByName('id').AsInteger;

level:= dmIAS.aqDict.FieldByName('level').AsInteger;

while not dmIAS.aqDict.Eof do

begin

// Классифицируем по словарю для каждой рубрики

if id_rubr <> dmIAS.aqDict.FieldByName('id').AsInteger

then

begin

res:= GetRes(Name_cnt, Text_cnt, Key_cnt);

dmIAS.InsertClassify(id_publ, id_rubr, level, Name_cnt,

Text_cnt, Key_cnt, res);

id_rubr:= dmIAS.aqDict.FieldByName('id').AsInteger;

level:= dmIAS.aqDict.FieldByName('level').AsInteger;

Name_cnt:= 0;

Text_cnt:= 0;

Key_cnt:= 0;

end;

stWord:= AnsiUpperCase(dmIAS.aqDict.FieldByName('Word').AsString);

// Классификация по наименованию

im:= IndistinctMatching(length(stWord),

stWord,

AnsiUpperCase(FieldByName('name_publ').AsString));

if im > iFuzzyPorog

then Inc(Name_cnt);

// Классификация по тексту

im:= IndistinctMatching(length(stWord),

stWord,

AnsiUpperCase(FieldByName('text_publ').AsString));

if im > iFuzzyPorog

then Inc(Text_cnt);

// Классификация по ключевым словам

im:= IndistinctMatching(length(stWord),

stWord,

AnsiUpperCase(FieldByName('keywords').AsString));

if im > iFuzzyPorog

then Inc(Key_cnt);

dmIAS.aqDict.Next;

pbClassify.StepIt;

Application.ProcessMessages;

end;

res:= GetRes(Name_cnt, Text_cnt, Key_cnt);

dmIAS.InsertClassify(id_publ, id_rubr, level, Name_cnt,

Text_cnt, Key_cnt, res);

Next;

pbClassify.StepIt;

Application.ProcessMessages;

end;

end;

dmIAS.aqClassify.Close;

dmIAS.atPublikatsii.First;

dmIAS.aqClassify.Open;

Application.ProcessMessages;

ShowMessage('Классификация успешно завершена.');

end;

procedure TfrmClassify.Button2Click(Sender: TObject);

var i, i_rubr, level: integer;

begin

if dbgClassify.SelectedRows.Count = 0

then

begin

ShowMessage('Не выбрано ни одной записи!');

exit;

end;

// Удалить все записи из Publ_Rubr для данной статьи

dmIAS.DeleteFromPublRubr(dmIAS.atPublikatsii.FieldByName('id_publ').AsInteger);

// Записать в Publ_Rubr все выбранные рубрики для данной статьи

for i:= 0 to dbgClassify.SelectedRows.Count-1 do

begin

dbgClassify.DataSource.DataSet.GotoBookmark(Pointer(dbgClassify.SelectedRows.Items[i]));

i_rubr:= dbgClassify.DataSource.DataSet.FieldByName('id').AsInteger;

level:= dbgClassify.DataSource.DataSet.FieldByName('level_r').AsInteger;

dmIAS.InsertIntoPublRubr(dmIAS.atPublikatsii.FieldByName('id_publ').AsInteger,

i_rubr,

level);

end;

dbgClassify.DataSource.DataSet.GotoBookmark(Pointer(dbgClassify.SelectedRows.Items[0]));

ShowMessage('Соответствующие статье рубрики сохранены.');

dmIAS.atObrPublikatsii.Close;

dmIAS.atObrPublikatsii.Open;

dmIAS.atCountObrPublikatsii.Close;

dmIAS.atCountObrPublikatsii.Open;

lblCountArticles.Caption:= 'Всего в базе: '

+ IntToStr(dmIAS.atPublikatsii.RecordCount)

+ ' статей. '

+ ' Классифицировано '

+ IntToStr(dmIAS.atCountObrPublikatsii.RecordCount)

+ ' статей.';

end;

procedure TfrmClassify.FormCreate(Sender: TObject);

begin

frmClassifySettings.SetNamePorog(2, 12);

frmClassifySettings.SetTextPorog(3, 12);

frmClassifySettings.SetKeyPorog(2, 12);

frmClassifySettings.SetNamePorog(4, 23);

frmClassifySettings.SetTextPorog(6, 23);

frmClassifySettings.SetKeyPorog(4, 23);

frmClassifySettings.SetFuzzyPorog(50);

frmClassifySettings.SetflShowAll(true);

end;

procedure TfrmClassify.FormShow(Sender: TObject);

begin

{ if frmClassifySettings.GetflShowAll

then // Показывать все статьи

with dmIAS.atPublikatsii do

begin

Close;

SQL.Text:= stSelectAllPubl;

Open;

end

else // Показывать необработанные статьи

with dmIAS.atPublikatsii do

begin

Close;

SQL.Text:= stSelectNeobrPubl;

Open;

end;}

lblCountArticles.Caption:= 'Всего в базе: '

+ IntToStr(dmIAS.atPublikatsii.RecordCount)

+ ' статей. '

+ ' Классифицировано '

+ IntToStr(dmIAS.atCountObrPublikatsii.RecordCount)

+ ' статей.';

end;

procedure TfrmClassify.Button3Click(Sender: TObject);

var tmpl, Template, NewTemplate, ItemIndex: olevariant;

ARange: Range;

pars: Paragraphs;

par: Paragraph;

tbls: Tables;

tbl1: Table;

st: string;

vcol: OleVariant;

i: integer;

begin

try

wa.Connect;

wa.Visible := True;

except

MessageDlg('А у Вас Word не установлен :(', mtError, [mbOk], 0);

Abort;

end;

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:= 'Отчет по результатам классификации статьи ';

wa.Selection.InsertAfter(st+#13);

wa.Selection.InsertAfter(' '+#13);

vcol := wdCollapseEnd;

wa.Selection.Collapse(vcol);

wa.Selection.Font.Bold:= 0;

wa.Selection.Font.Size:= 14;

st:= 'Дата публикации: ';

wa.Selection.InsertAfter(st);

vcol := wdCollapseEnd;

wa.Selection.Collapse(vcol);

if (dmIAS.atPublikatsii.FieldByName('data').AsString = '30.12.1899')

then st:= ' '

else st:= dmIAS.atPublikatsii.FieldByName('data').AsString;

wa.Selection.InsertAfter(st+#13);

vcol := wdCollapseEnd;

wa.Selection.Collapse(vcol);

st:= 'Файл публикации: ';

wa.Selection.InsertAfter(st);

vcol := wdCollapseEnd;

wa.Selection.Collapse(vcol);

st:= dmIAS.atPublikatsii.FieldByName('file').AsString;

wa.Selection.InsertAfter(st+#13);

vcol := wdCollapseEnd;

wa.Selection.Collapse(vcol);

st:= 'Название публикации: ';

wa.Selection.InsertAfter(st);

vcol := wdCollapseEnd;

wa.Selection.Collapse(vcol);

st:= dmIAS.atPublikatsii.FieldByName('name_publ').AsString;

wa.Selection.InsertAfter(st+#13);

vcol := wdCollapseEnd;

wa.Selection.Collapse(vcol);

st:= 'Ключевые слова: ';

wa.Selection.InsertAfter(st);

vcol := wdCollapseEnd;

wa.Selection.Collapse(vcol);

st:= dmIAS.atPublikatsii.FieldByName('keywords').AsString;

wa.Selection.InsertAfter(st+#13);

vcol := wdCollapseEnd;

wa.Selection.Collapse(vcol);

st:= 'Автор публикации: ';

wa.Selection.InsertAfter(st);

vcol := wdCollapseEnd;

wa.Selection.Collapse(vcol);

st:= dmIAS.atPublikatsii.FieldByName('author').AsString;

wa.Selection.InsertAfter(st+#13);

vcol := wdCollapseEnd;

wa.Selection.Collapse(vcol);

st:= 'Текст публикации: ';

wa.Selection.InsertAfter(st);

vcol := wdCollapseEnd;

wa.Selection.Collapse(vcol);

st:= dmIAS.atPublikatsii.FieldByName('text_publ').AsString;

wa.Selection.InsertAfter(st+#13);

vcol := wdCollapseEnd;

wa.Selection.Collapse(vcol);

wa.Selection.InsertAfter(' '+#13);

st:= 'Результаты классификации:';

wa.Selection.InsertAfter(st);

vcol := wdCollapseEnd;

wa.Selection.Collapse(vcol);

ARange:= wd.Sentences.Last;

tbls:= ARange.Tables;

tbl1:= tbls.Add(ARange,

dmIAS.aqClassify.RecordCount+1, // число строк

6, // число столбцов

EmptyParam,

EmptyParam);

tbl1.Cell(1, 1).Range.Text:= 'Код';

tbl1.Cell(1, 2).Range.Text:= 'Наименование';

tbl1.Cell(1, 3).Range.Text:= 'По назв.';

tbl1.Cell(1, 4).Range.Text:= 'По тексту';

tbl1.Cell(1, 5).Range.Text:= 'По кл.сл.';

tbl1.Cell(1, 6).Range.Text:= 'Результат';

i:= 2;

dmIAS.aqClassify.First;

while not dmIAS.aqClassify.Eof do

begin

tbl1.Cell(i, 1).Range.Text:= dmIAS.aqClassify.FieldByName('indx').AsString;

tbl1.Cell(i, 2).Range.Text:= dmIAS.aqClassify.FieldByName('name_r').AsString;

tbl1.Cell(i, 3).Range.Text:= dmIAS.aqClassify.FieldByName('name_cnt').AsString;

tbl1.Cell(i, 4).Range.Text:= dmIAS.aqClassify.FieldByName('text_cnt').AsString;

tbl1.Cell(i, 5).Range.Text:= dmIAS.aqClassify.FieldByName('key_cnt').AsString;

tbl1.Cell(i, 6).Range.Text:= dmIAS.aqClassify.FieldByName('res').AsString;

dmIAS.aqClassify.Next;

Inc(i);

end;

vcol := wdCollapseEnd;

wa.Selection.Collapse(vcol);

wa.Disconnect;

dmIAS.aqClassify.First;

end;

end.


Подобные документы

  • Средства компьютерной, коммуникационной и организационной техники как техническая основа обеспечения информационных технологий. Основные системы классификации компьютеров. Программное обеспечение информационных технологий в маркетинге и экономике.

    лекция [924,6 K], добавлен 01.04.2012

  • Источники сообщений, сигналы и коды, примеры применения знания основ теории информации для практических целей. Расчет информационных характеристик и согласование дискретного источника с дискретным каналом без шума и с шумом, эффективное кодирование.

    курсовая работа [179,6 K], добавлен 13.11.2009

  • Понятие информации, информационных технологий (ИТ) и системы (ИС). Анализ организационной структуры предприятия. Выбор методов по устранению недостатков. Способы применения ИТ для построения ИС. Внедрение информационных систем и технологий на предприятие.

    курсовая работа [1008,1 K], добавлен 06.03.2014

  • Основные свойства информационных технологий в экономике. Классификация, главные компоненты и структурная схема информационных технологий. Системные и инструментальные средства. Особенности взаимодействие информационных технологий с внешней средой.

    презентация [217,3 K], добавлен 22.01.2011

  • Определение сущности, функций, задач и видов информационных технологий. Характеристика информационных технологий обработки данных, управления, автоматизированного офиса и поддержки принятия решений. Анализ современных видов информационного обслуживания.

    презентация [866,0 K], добавлен 30.11.2014

  • Особенности вычисления количества информации, получаемой при фазовом сдвиге сигнала, если известна его амплитуда. Расчет информационных характеристик источников дискретных сообщений и дискретного канала. Особенности применения дискретизации и квантования.

    курсовая работа [557,7 K], добавлен 15.11.2009

  • Повышение эффективности системы управления информационной безопасностью в корпоративных информационных системах. Разработка структуры процесса классификации объектов защиты и составляющих его процедур; требования к архитектуре программного обеспечения.

    дипломная работа [1,8 M], добавлен 19.05.2013

  • Характеристика основных секторов рынка информационных услуг. Участники информационного рынка: сектор деловой информации, информации для специалистов, массовой и потребительской информации. Правовое регулирование на рынке информационных услуг.

    реферат [122,9 K], добавлен 01.12.2007

  • Основные определения информации и информационного процесса. Цели, задачи и виды информационных систем. Понятие внешних (взаимодействие предприятия с клиентами и конкурентами) и внутренних (описание отношений в коллективе сотрудников) потоков информации.

    контрольная работа [15,1 K], добавлен 23.05.2009

  • Роль структуры управления в информационной системе. Примеры информационных систем. Структура и классификация информационных систем. Информационные технологии. Этапы развития информационных технологий. Виды информационных технологий.

    курсовая работа [578,4 K], добавлен 17.06.2003

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.