kurs (664201), страница 2

Файл №664201 kurs (Особенности создания математических формул в Web) 2 страницаkurs (664201) страница 22016-07-31СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 2)

SaveDialog1.FileName := Filename;

Filename := ' ';

End;

end;

этот код обеспечивает открытие файла.

procedure TForm1.N3Click(Sender: TObject);

begin

Memo1.Lines.SaveToFile(SaveDialog1.FileName); // Сохранение файла

end;

procedure TForm1.N4Click(Sender: TObject);

begin

with SaveDialog1 do

If execute Then

Memo1.Lines.SaveToFile(SaveDialog1.FileName); // Меню «Сохранить как.»

End;

//сейчас идёт описание самой главной части программы

procedure TForm1.N5Click(Sender: TObject);

var list: TStringList;

tmpString: string;

i,CurrentSymbol,SeekSymbol, lastTag: integer;

notFound: boolean;

begin

With SaveDialog2 do

If execute then

Begin

list:=TStringList.Create;

for i:=0 to memo1.Lines.Count-1 do list.Add(memo1.lines[i]);

list.Insert(0,'');

list.Add('');

// в этой части (смотрите выше) происходит вставка тэгов

// перед набранным текстом и после текста.

for i:=1 to memo1.Lines.Count do

begin

lastTag:=1; tmpString:='';

for CurrentSymbol:=1 to Length(List[i]) - 9 do

if Copy(List[i], CurrentSymbol, 9) = '' then

begin

tmpString := tmpString+''+

Copy(List[i],lastTag,CurrentSymbol-lastTag)+

''+

Copy(List[i],CurrentSymbol,SeekSymbol-CurrentSymbol+1) +'';

lastTag:=SeekSymbol+1; notFound:=false;

end;

inc(SeekSymbol);

end;

end;

if tmpString<>'' then

begin

tmpString:=tmpString+''+Copy(List[i],lastTag, Length(List[i])-lastTag+1)+'';

List[i]:='

'+tmpString+'
';

end;

end;

List.SaveToFile(Filename);

list.Free;

End;

end;

//В этой части происходит вставка таблицы (смотрите стр. 9).

//Чтобы обеспечить корректное отображение формулы браузером.

В общем, код программы основан на нескольких принципах: на поиске тэга, в котором находится ссылка на математическую формулу, вставка таблицы, и экспортировании текста в формат HTML. При написании программы самой сложной частью оказалась вставка таблицы. В начале программа могла находить нужные тэги только в том случае, если он находился отдельно в какой либо строчке. Далее, после устранения вышеописанной ошибки, второй проблемой стала невозможность вставки в документ сразу несколько картинок, что непосредственно важно для математического документа. Самой последней проблемой была невозможность работы программы на других машинах. Эта проблема была вызвана некорректным обращением компонента программы со средой Windows. Решение оказалось банальным – я использовал браузер, отображающий результаты работы без сохранения (а в нём была проблема), который назначен Windows по умолчанию. И вот все проблемы были решены.

Заключение:

Изучение языка математической разметки «MathML» содержит в себе некоторые минусы:

  1. Не все браузеры поддерживает «MathML».

  2. Доскональное изучение «MathML» громоздко и сложно для обычного пользователя.

На момент написания «MathBuilder» из браузеров, которые поддерживают язык математической разметки был только Mozilla 0.9.9 и Internet Explorer 5.5 остальные не поддерживают без плагинов (англ. plug-in дополнительная программа для выполнения каких либо специфических функций). Однако, метод которым пользуется MahBuilder поддерживается всеми браузерами.

Вышеописанная программа, на мой взгляд, вносит некий вклад в развитие математических представлений в Web, потому что на всех математических сайтах, математические формулы представлены как на рисунке № 3,то есть с новой строчки, что менее корректно выглядит, в отличии от рисунка №4, когда формула отображается в той же строке, что и текст. Следовательно целесообразнее использовать метод, используемый в MathBuilder.

Приложение №1

Исходный код программы MathBuilder.

unit MyEditu;

interface

uses

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

StdCtrls, ExtCtrls, Menus, ExtDlgs, shellapi;

type

TForm1 = class(TForm)

Memo1: TMemo;

OpenDialog1: TOpenDialog;

SaveDialog1: TSaveDialog;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N7: TMenuItem;

SaveDialog2: TSaveDialog;

N6: TMenuItem;

N8: TMenuItem;

N10: TMenuItem;

N11: TMenuItem;

OpenDialog3: TOpenDialog;

OpenDialog2: TOpenDialog;

N9: TMenuItem;

N12: TMenuItem;

procedure N2Click(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure N4Click(Sender: TObject);

procedure N5Click(Sender: TObject);

procedure N6Click(Sender: TObject);

procedure N8Click(Sender: TObject);

procedure N10Click(Sender: TObject);

procedure N11Click(Sender: TObject);

procedure N12Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

uses Unit4;

//es Unit2;

{$R *.DFM}

procedure TForm1.N2Click(Sender: TObject);

begin

With OpenDialog1 do

If Execute Then

Begin

memo1.lines.loadfromfile(Filename);

ExtractFilename(Filename);

SaveDialog1.FileName := Filename;

Filename := '';

End;

end;

procedure TForm1.N3Click(Sender: TObject);

begin

Memo1.Lines.SaveToFile(SaveDialog1.FileName);

end;

procedure TForm1.N4Click(Sender: TObject);

begin

with SaveDialog1 do

If execute Then

Memo1.Lines.SaveToFile(SaveDialog1.FileName);

end;

procedure TForm1.N5Click(Sender: TObject);

var list: TStringList;

tmpString: string;

i,CurrentSymbol,SeekSymbol, lastTag: integer;

notFound: boolean;

begin

With SaveDialog2 do

If execute then

Begin

list:=TStringList.Create;

for i:=0 to memo1.Lines.Count-1 do list.Add(memo1.lines[i]);

list.Insert(0,'');

list.Add('');

for i:=1 to memo1.Lines.Count do

begin

lastTag:=1; tmpString:='';

for CurrentSymbol:=1 to Length(List[i]) - 9 do

if Copy(List[i], CurrentSymbol, 9) = '' then

begin

tmpString := tmpString+''+

Copy(List[i],lastTag,CurrentSymbol-lastTag)+

''+

Copy(List[i],CurrentSymbol,SeekSymbol-CurrentSymbol+1) +'';

lastTag:=SeekSymbol+1; notFound:=false;

end;

inc(SeekSymbol);

end;

end;

if tmpString<>'' then

begin

tmpString:=tmpString+''+Copy(List[i],lastTag, Length(List[i])-lastTag+1)+'';

List[i]:='

'+tmpString+'
';

end;

end;

List.SaveToFile(Filename);

list.Free;

End;

end;

procedure TForm1.N6Click(Sender: TObject);

// prosmotr

var list: TStringList;

tmpString: string;

i,CurrentSymbol,SeekSymbol, lastTag: integer;

notFound: boolean;

Begin

list:=TStringList.Create;

for i:=0 to memo1.Lines.Count-1 do list.Add(memo1.lines[i]);

list.Insert(0,'');

list.Add('');

for i:=1 to memo1.Lines.Count do

begin

lastTag:=1; tmpString:='';

for CurrentSymbol:=1 to Length(List[i]) - 9 do

if Copy(List[i], CurrentSymbol, 9) = '' then

begin

tmpString := tmpString+''+

Copy(List[i],lastTag,CurrentSymbol-lastTag)+

''+

Copy(List[i],CurrentSymbol,SeekSymbol-CurrentSymbol+1) +'';

lastTag:=SeekSymbol+1; notFound:=false;

end;

inc(SeekSymbol);

end;

end;

if tmpString<>'' then

begin

tmpString:=tmpString+''+Copy(List[i],lastTag, Length(List[i])-lastTag+1)+'';

List[i]:='

'+tmpString+'
';

end;

end;

List.SaveToFile('tmp.html');

list.Free;

ShellExecute(handle, 'open', 'tmp.html', '', '', SW_SHOW);

//winexec('tmp.html', SW_SHOW)

//Form2.showModal;

End;

//end of prosmotr }

procedure TForm1.N8Click(Sender: TObject);

begin

close;

end;

procedure TForm1.N10Click(Sender: TObject);

var tmpMemo: string;

begin

With OpenDialog2 do

if execute then

Begin

begin

tmpMemo:=tmpMemo + '';

Memo1.SelText :=tmpMemo;

end;

End;

end;

procedure TForm1.N11Click(Sender: TObject);

var Href: String;

begin

With OpenDialog3 do

if Execute then

Begin

Href:=Href + ''

+ 'Ссылка' + '';

Memo1.SelText :=Href;

End;

end;

procedure TForm1.N12Click(Sender: TObject);

begin

form4.ShowModal;

end;

end.

Приложение№2.

Скриншоты.

Рис.1

Рис.2

Рис.3

Рис.4

20


Характеристики

Тип файла
Документ
Размер
133 Kb
Тип материала
Учебное заведение
Неизвестно

Список файлов реферата

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7029
Авторов
на СтудИзбе
260
Средний доход
с одного платного файла
Обучение Подробнее