На создание одного теста у ВУЗа уходит примерно 7к рублей.
Но программе пофигу – любой тест она воссоздаёт пока я сплю.
«Чувак явно брешет», - подумаете вы. «Это какой-то фотошоп»
И тогда я покажу фрагмент кода (пруф):
Listbox2.Items.Clear;
DeleteFile('D:\тест по экзаменам\Обработка\'+Edit4.Text+'.htm');
DeleteDir('D:\тест по экзаменам\Обработка\'+Edit4.Text+'_files');
if FindFirst(ExtractFilePath(ParamStr(0))+'*.htm', faAnyFile, sr)=0 then //ищем файлы htm в каталоге
repeat
Listbox2.Items.Add(sr.Name); //выводим список в ListBox
until FindNext(sr)<>0;
FindClose(sr);
//количество тестов
Edit2.text := IntToStr(Listbox2.count-1);
for j:=StrToInt(Edit3.Text) to StrToInt(Edit2.Text) do
begin
Memo1.Lines.LoadFromFile(Listbox2.Items[j]);
Memo1.Text:=Utf8ToAnsi(memo1.Text);
s := Memo1.Text;
//s1 := Memo1.Text;{ФИО}
//название дисциплины
Label4.Caption := Copy(s, pos('<div class="disc">Дисциплина: «<b>', s) + 34, pos('</b>»</div>', s) - pos('<div class="disc">Дисциплина: «<b>', s) -34);
{ФИО}
//Label8.Caption := Copy(s1, pos('background-color:#559C2D;color:white">', s1) + 41, pos('</b><br><b>Статус:', s1) - pos('background-color:#559C2D;color:white">', s1) -41);
find:='<div style="padding: 8px 8px 8px 8px; display: inline-block;">';
//For i:=0 to Memo1.Lines.Count-1 do
If Pos(FIND, Memo1.Lines.Text)<>0
Then
Begin
Memo1.SetFocus();
Memo1.SelStart:=Pos(FIND,Memo1.Lines.Text)-1;
Memo1.SelLength:=Length(FIND)+100000;
Memo1.ClearSelection;
end;
memo1.SelStart:=0;
find:=Edit1.Text;
//For i:=0 to Memo1.Lines.Count-1 do
If Pos(FIND, Memo1.Lines.Text)<>0
Then
Begin
Memo1.SetFocus();
Memo1.SelStart:=Pos(FIND,Memo1.Lines.Text)-1;
Memo1.SelLength:=Length(FIND)+100000;
end;
Memo2.Text:=Memo1.SelText;
//произвожу замену ссылок внутри файла
z1:=StringReplace(Listbox2.Items[j],'.htm','',[rfReplaceAll, rfIgnoreCase]);
z2:=StringReplace(Listbox2.Items[j],'.htm','',[rfReplaceAll, rfIgnoreCase]);
z2:=Label4.Caption+' '+z2;
Memo2.Lines.Text :={Label8.Caption+'<br><br>'+}StringReplace(Memo2.Lines.Text,z1,z2,[rfReplaceAll, rfIgnoreCase]);
//Listbox2.Items[j] - имя исходного файла
//Label4.Caption - название дисциплины
//Сохраняю файл
Memo2.Lines.SaveToFile(Label4.Caption+' '+Listbox2.Items[j]+'l');
//CreateDir(Label4.Caption+' '+StringReplace(Listbox2.Items[j],'.htm','',[rfReplaceAll, rfIgnoreCase])+'_files');
//StringReplace(Listbox2.Items[j],'.htm','',[rfReplaceAll, rfIgnoreCase])+'_files' - это исходная папка
//Label4.Caption+' '+StringReplace(Listbox2.Items[j],'.htm','',[rfReplaceAll, rfIgnoreCase])+'_files' - это конечная папка
//Переименование директории с картинками
RenameFile(StringReplace(Listbox2.Items[j],'.htm','',[rfReplaceAll, rfIgnoreCase])+'_files',Label4.Caption+' '+StringReplace(Listbox2.Items[j],'.htm','',[rfReplaceAll, rfIgnoreCase])+'_files');
DeleteFile(Listbox2.Items[j]);
//MoveFile(Pchar('D:\тест по экзаменам\Обработка\'+Label4.Caption+' '+Listbox2.Items[j]+'l'),Pchar('D:\тест по экзаменам\ЯЯОбработано\'+Label4.Caption+' '+Listbox2.Items[j]+'l'));
//MoveFile(Pchar('D:\тест по экзаменам\Обработка\'+Label4.Caption+' '+StringReplace(Listbox2.Items[j],'.htm','',[rfReplaceAll, rfIgnoreCase])+'_files'),Pchar('D:\тест по экзаменам\ЯЯОбработано\'+Label4.Caption+' '+StringReplace(Listbox2.Items[j],'.htm','',[rfReplaceAll, rfIgnoreCase])+'_files'));
MoveFile(Pchar('D:\тест по экзаменам\Обработка\'+Label4.Caption+' '+Listbox2.Items[j]+'l'),Pchar('D:\ИДО ТПУ тесты\'+Label4.Caption+'\'+Label4.Caption+' '+Listbox2.Items[j]+'l'));
MoveFile(Pchar('D:\тест по экзаменам\Обработка\'+Label4.Caption+' '+StringReplace(Listbox2.Items[j],'.htm','',[rfReplaceAll, rfIgnoreCase])+'_files'),Pchar('D:\ИДО ТПУ тесты\'+Label4.Caption+'\'+Label4.Caption+' '+StringReplace(Listbox2.Items[j],'.htm','',[rfReplaceAll, rfIgnoreCase])+'_files'));
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
var
Find,s :string;
i,j:integer;
sr: TSearchRec;
begin
if FindFirst(ExtractFilePath(ParamStr(0))+'*.html', faAnyFile, sr)=0 then //ищем файлы htm в каталоге
repeat
Listbox2.Items.Add(sr.Name); //выводим список в ListBox
until FindNext(sr)<>0;
FindClose(sr);
Edit2.text := IntToStr(Listbox2.count-1);
for j:=StrToInt(Edit3.Text) to StrToInt(Edit2.Text) do
begin
Memo1.Lines.LoadFromFile(Listbox2.Items[j]);
//Memo1.Text:=Utf8ToAnsi(memo1.Text);
Memo3.Text:=Memo3.Text+Memo1.Text;
Чем мне нравится мой код, так это тем, что он настолько ебучий, что в нём без поллитры не разберёшься.
Функции и процедуры? Не слышал! Только говнокод!
ЗЫ. Уважаемый @Begemot911, вы довольны качеством этого поста или мне стоит осветить мою программу по обходу АП?