ZEOS

Ваша IP адреса: 54.167.44.32
Сьогодні: 13.12.2017
04:20
Україна, Київська область, 09200, м. Кагарлик, вул. Воровського, 1
тел. (04573) 5-18-62, e-mail: kagecol_1@ukr.net
Мапа сайту Контакти Головна

Міні чат

BB-Коди

Погода

Натисніть на картинку для збільшення

Календар подій

Календар свят і подій. Листівки, вітання та побажання

Вік сайту

Реклама

Реклама

Авторизація

Календар новин

«  Грудень 2017  »
ПнВтСрЧтПтСбНд
    123
45678910
11121314151617
18192021222324
25262728293031

Наше опитування

Оцініть наш сайт


Статистика

Онлайн всього: 1
Гостей: 1
Користувачів: 0


Реклама

Реклама 123
Додаток №1
A12TestHtml.prg (голoвна тестуюча програма)
Оригінальний текст програмного модуля з генерації HTML файлу з тестом.

CD &cDir
STORE 0 TO nEdit
IF FILE('mv01.dbf')
    SELECT mv01
    USE
    DELETE FILE mv01.dbf
ENDIF
 

ThisForm.Visible = .F.

DO WHILE .T.
      STORE .F. TO lErro
      STORE cDir+'\test\'+ALLTRIM(m.fold) TO cPath
      CD &cPath
      cSave = GETFILE(IIF(m.lang=1,'Тип файлу *.txt:TXT','Тип файла *.txt:TXT'),;
      IIF(m.lang=1,'Відберіть файл *.txt','Отберите файл *.txt'),;
      IIF(m.lang=1,'Відкрити','Открыть'),0,;
      IIF(m.lang=1,'Відкриття *.txt файлу з тестом','Открытие *.txt файла с тестом'))
      IF EMPTY(ALLTRIM(cSave))
          CD &cDir
          RETURN
      ELSE
          CD &cDir
          STORE RAT('\',ALLTRIM(cSave)) TO k
          STORE ALLTRIM(SUBSTR(cSave,k+1)) TO cFile
          STORE SUBSTR(ALLTRIM(cFile),1,LEN(cFile)-4) TO cFile
          FOR i = 1 TO LEN(ALLTRIM(cFile))
                  IF .NOT. SUBSTR(cFile,i,1) $ cSimvol
                      STORE .T. TO lErro
                      EXIT
                 ENDIF
          ENDFOR
          IF lErro = .T.
              w16 = IIF(m.lang=1,'Назва файлу з тестом не може складатися більше як із 128 символів.',;
                                               'Название файла с тестом не может состоять более чем из 128 символов.')
              w17 = IIF(m.lang=1,'Назва тесту повинна складатися тільки з літер латиниці, кирилиці, чисел та символу підкреслення _.',;
                                              'Название теста должно состоять только из букв латиницы, кирилицы, чисел и символа подчеркивания _.')
              w18 = IIF(m.lang=1,'У назві тесту недопустимо приміняти знак пропуску між словами.',;
                                              'В названи теста недопустимо применение знака пробел между словами.')
              w19 = IIF(m.lang=1,'Файл розташований в:','Файл розположен в:')
              w20 = IIF(m.lang=1,'Папка: '+ALLTRIM(cPath),'Папка: '+ALLTRIM(cPath))
             w21 = IIF(m.lang=1,'Файл : '+ALLTRIM(cFile),'Файл : '+ALLTRIM(cFile))
            DO FORM edi_040
            IF nEdit = 1
                EXIT
            ELSE
                CD &cDir
                RETURN
            ENDIF
ELSE
EXIT
ENDIF
ENDIF
ENDDO

DO WHILE .T.
STORE .F. TO lErro
CD &cDir
SELECT mr01
DELETE ALL
PACK
APPEND FROM &cSave TYPE DELIMITED WITH TAB
GOTO TOP
REPLACE ALL mr01.html WITH ALLTRIM(mr01.html)
GOTO TOP
* Тут цикл
COUNT FOR RIGHT(ALLTRIM(mr01.html),1) == '#' TO t
GOTO TOP
IF t <> 3
STORE .T. TO lErro
w16 = IIF(m.lang=1,'Заголовок тесту повинен складатися з трьох рядків.',;
'Заголовок теста должен состоять из трьох строк.')
w17 = IIF(m.lang=1,'В кінці кожного рядка заголовку повинен бути присутнім символ #.',;
'В конце каждой строки заголовка должен присутствовать символ #.')

w18 = IIF(m.lang=1,'Файл розташований в:','Файл розположен в:')
w19 = IIF(m.lang=1,'Папка: '+cPath, 'Папка : '+cPath)
w20 = IIF(m.lang=1,'Назва: '+cFile+'.txt','Название: '+cFile+'.txt')
w21 = IIF(m.lang=1,'Натисніть кнопку РЕДАГУВАТИ та виправіть помилку.',;
'Нажмите кнопку РЕДАКТИРОВАТЬ и исправьте ошибку.')
w22 = ''

DO FORM msg_480
IF nEdit = 1
DO FORM edi_txt
IF nEdit = 1
LOOP
ELSE
CD &cDir
RETURN
ENDIF
ELSE
CD &cDir
RETURN
ENDIF
ELSE
EXIT
ENDIF
ENDDO

DO WHILE .T.
STORE .F. TO lErro
CD &cDir
SELECT mr01
DELETE ALL
PACK
APPEND FROM &cSave TYPE DELIMITED WITH TAB
GOTO TOP
REPLACE ALL mr01.html WITH ALLTRIM(mr01.html)
GOTO TOP
COUNT FOR RIGHT(ALLTRIM(mr01.html),1) == '@' TO m
COUNT FOR RIGHT(ALLTRIM(mr01.html),1) == '$' TO n
IF m <> n
STORE .T. TO lErro
w16 = IIF(m.lang=1,'У відібраному файлі з тестом зайві чи не вистачає символів @, $.',;
'В отобранном файле с тестом лишние или недостаточно символов @, $.')
w17 = IIF(m.lang=1,'Символ @ визначає рядок тесту із запитанням, а символ $ вірну відповідь до запитання. Символ вірної відповіді $ у запитанні повинен бути тільки один.',;
'Символ @ определяет строку теста с вопросом, а символ $ правильный ответ к вопросу. Символ правильного ответа $ в вопроск должен быть только один.')
w18 = IIF(m.lang=1,'Керуючі символи @ і $ обов'+[']+'язково повинні розташовуватися в кінці речення тесту.',;
'Символы управления @ и $ обязательно должны располагаться в конце предложения теста.')
w19 = IIF(m.lang=1,'Файл розташований в:','Файл розположен в:')
w20 = IIF(m.lang=1,'Папка: '+ALLTRIM(cPath),'Папка: '+ALLTRIM(cPath))
w21 = IIF(m.lang=1,'Назва: '+cFile+'.txt','Назва: '+cFile+'.txt')
w22 = IIF(m.lang=1,'Натисніть кнопку РЕДАГУВАТИ та виправіть помилку.',;
'Нажмите кнопку РЕДАКТИРОВАТЬ и исправьте ошибку.')
DO FORM msg_490
IF nEdit = 1
DO FORM edi_txt
IF nEdit = 1
LOOP
ELSE
CD &cDir
RETURN
ENDIF
ELSE
CD &cDir
RETURN
ENDIF
ELSE
EXIT
ENDIF
ENDDO
ThisForm.Generate_Html()
*========================================================
SELECT mr01
GOTO TOP
REPLACE ALL mr01.html WITH ALLTRIM(mr01.html)
GOTO TOP
FOR i = 1 TO 3
STORE 'w' + ALLTRIM(STR(i+4)) TO w1
&w1 = SUBSTR(ALLTRIM(mr01.html),1,LEN(ALLTRIM(mr01.html))-1)
SKIP
ENDFOR

SELECT mr02
DELETE ALL
PACK
APPEND BLANK
REPLACE mr02.html WITH '<html>'
APPEND BLANK
REPLACE mr02.html WITH '<head>'
APPEND BLANK
REPLACE mr02.html WITH IIF(m.lang=1,'<title>Програма генератор HTML кодів для сторінок Вашого сайту з тестами</title>',;
'<title>Программа генератор HTML кодов для страниц Вашего сайта с тестами</title>')
APPEND BLANK
REPLACE mr02.html WITH '</head>'
APPEND BLANK
REPLACE mr02.html WITH '<bodi>'
APPEND BLANK
REPLACE mr02.html WITH '<form action="remove_it?subject=Answer on test questions" method="post" name="test" style="border: 3px double #CCCCCC;" class="style1">'
APPEND BLANK
REPLACE mr02.html WITH '<div class="style3">'
APPEND BLANK
REPLACE mr02.html WITH '<br><strong>ПРЕДМЕТ: '+w5+'<br>'+w6+'<br>'+w7+'</strong>'

APPEND BLANK
REPLACE mr02.html WITH IIF(m.lang=1,'<br>Виберіть одну вірну відповідь для кожного запитання.<br>Після відповіді на всі запитання<br>натисніть кнопку внизу «Дивитися результат»</div><hr size="1">',;
'<br>Отберите один верный ответ для каждого вопроса.<br>После ответа на все вопросы<br>нажмите кнопку внизу «Смотреть результат»</div><hr size="1">')
SELECT mr01
GOTO TOP
DELETE ALL FOR EMPTY(ALLTRIM(mr01.html))
PACK

SELECT mr01
GOTO TOP
DO WHILE .NOT. EOF()
IF RIGHT(ALLTRIM(mr01.html),1) == '@'
EXIT
ENDIF
SKIP
ENDDO

STORE 1 TO k
STORE 11 TO v
DO WHILE .NOT. EOF()
SELECT mr02
APPEND BLANK
REPLACE mr02.html WITH '<p class="style2">'
APPEND BLANK
REPLACE mr02.html WITH '<b><i>'+ALLTRIM(mr01.html)+'</i></b><br>'
SELECT mr01
SKIP
DO WHILE .NOT. EOF()
IF RIGHT(ALLTRIM(mr01.html),1) == '@'
SELECT mr02
APPEND BLANK
REPLACE mr02.html WITH '</p><hr size="1">'
k = k + 1
EXIT
ELSE
SELECT mr02
APPEND BLANK
STORE ALLTRIM(STR(k)) TO w8
STORE ALLTRIM(STR(v)) TO w9
REPLACE mr02.html WITH '<input name="q'+w8+'" value="'+w9+'" type="radio"> '+ALLTRIM(mr01.html)+'<br>'
v = v + 1
SELECT mr01
SKIP
LOOP
ENDIF
ENDDO
ENDDO

SELECT mr02
GOTO TOP
DO WHILE .NOT. EOF()
IF ALLTRIM(mr02.html) == '</p><hr size="1">'
SKIP -1
REPLACE mr02.html WITH SUBSTR(mr02.html,1,LEN(ALLTRIM(mr02.html))-4)
SKIP 2
ELSE
SKIP
ENDIF
ENDDO
GOTO BOTTOM
REPLACE mr02.html WITH SUBSTR(mr02.html,1,LEN(ALLTRIM(mr02.html))-4)

SELECT mr02
APPEND BLANK
REPLACE mr02.html WITH '<table style="width: 100%; height: 46px">'
APPEND BLANK
REPLACE mr02.html WITH '<tr align="center"><td></td></tr>'
APPEND BLANK
REPLACE mr02.html WITH IIF(m.lang=1,'<tr align="center"><td class="style4"><strong><em>Натисніть кнопку для відправки тесту на перевірку:</em></strong></td></tr>',;
'<tr align="center"><td class="style4"><strong><em>Нажмите кнопку для отправки теста на проверку:</em></strong></td></tr>')
APPEND BLANK
REPLACE mr02.html WITH IIF(m.lang=1,'<tr align="center"><td><button type="button" onclick="dataBase(this.form)" id="N1">Дивитися результат</button></td></tr>',;
'<tr align="center"><td><button type="button" onclick="dataBase(this.form)" id="N1">Смотреть результат</button></td></tr>')

APPEND BLANK
REPLACE mr02.html WITH IIF(m.lang=1,'<tr align="center"><td><button type="reset">Скинути відповіді</button></td></tr>',;
'<tr align="center"><td><button type="reset">Сбросить ответы</button></td></tr>')
APPEND BLANK
REPLACE mr02.html WITH '<tr align="center"><td><hr style="height: 1px">'
APPEND BLANK
REPLACE mr02.html WITH '<table style="width: 60%" align="center" class="style4">'
APPEND BLANK
REPLACE mr02.html WITH IIF(m.lang=1,'<tr><td><i><b>Підведемо підсумки. Якщо Ви набрали:</b></i>',;
'<tr><td><i><b>Подведем результат. Если Вы набрали:</b></i>')
APPEND BLANK
REPLACE mr02.html WITH IIF(m.lang=1,'<br>1 - 3 бала. Вам необхідно гарно задуматися',;
'<br>1 - 3 бала. Вам необходимо хорошо призадуматься')
APPEND BLANK
REPLACE mr02.html WITH IIF(m.lang=1,'<br>4 - 6 балів. Це теж оцінки але Ви ще зовсім не інформатик',;
'<br>4 - 6 балов. Это тоже оценка но Вы еще совсем не информатик')
APPEND BLANK
REPLACE mr02.html WITH IIF(m.lang=1,'<br>7 - 9 балів. Уже добре але це ще не досягнення',;
'<br>7 - 9 балів. Уже хорошо но это еще не достижение')
APPEND BLANK
REPLACE mr02.html WITH IIF(m.lang=1,'<br>10 балів і більше. Можливо із Вас і вийде програміст. Спробуйте.</td></tr>',;
'<br>10 балов и болше. Возможно из Вас и получится программист. Попытайтесь.</td></tr>')
APPEND BLANK
REPLACE mr02.html WITH '</table><br></td></tr>'
APPEND BLANK
REPLACE mr02.html WITH '</table>'
APPEND BLANK
REPLACE mr02.html WITH '</form>'
APPEND BLANK
REPLACE mr02.html WITH '</bodi>'

APPEND BLANK
REPLACE mr02.html WITH '<script language="JavaScript"> '
APPEND BLANK
REPLACE mr02.html WITH 'function dataBase(test) {'
APPEND BLANK
REPLACE mr02.html WITH 'var counter = 0;'

APPEND BLANK
REPLACE mr02.html WITH 'var koli = 0;'
SELECT * FROM mr02 INTO TABLE mv02 WHERE LEFT(ALLTRIM(mr02.html),6) = '<b><i>' .OR. LEFT(ALLTRIM(mr02.html),6) = '<input'
STORE 0 TO k
SELECT mv02
GOTO TOP
DO WHILE .NOT. EOF()
IF RIGHT(ALLTRIM(mv02.html),13) = '@</i></b><br>'
k = k + 1
STORE 0 TO m
SKIP
LOOP
ELSE
IF RIGHT(ALLTRIM(mv02.html),5) = '$<br>'
STORE ALLTRIM(STR(k)) TO w1
STORE ALLTRIM(STR(m)) TO w2
REPLACE mv02.html WITH 'if (test.q'+w1+'['+w2+'].checked) {counter++;}'
SKIP
LOOP
ELSE
REPLACE mv02.html WITH ''
m = m + 1
SKIP
LOOP
ENDIF
ENDIF
ENDDO

SELECT mr02
GOTO TOP
DO WHILE .NOT. EOF()
IF RIGHT(ALLTRIM(mr02.html),13) == '@</i></b><br>'
REPLACE mr02.html WITH SUBSTR(ALLTRIM(mr02.html),1,LEN(ALLTRIM(mr02.html))-13)
REPLACE mr02.html WITH ALLTRIM(mr02.html) + '</i></b><br>'
ENDIF
IF RIGHT(ALLTRIM(mr02.html),5) == '$<br>'
REPLACE mr02.html WITH SUBSTR(ALLTRIM(mr02.html),1,LEN(ALLTRIM(mr02.html))-5)
REPLACE mr02.html WITH ALLTRIM(mr02.html) + '<br>'
ENDIF
SKIP
ENDDO

SELECT mv02
DELETE ALL FOR '@' $ ALLTRIM(mv02.html)
DELETE ALL FOR EMPTY(ALLTRIM(mv02.html))
PACK
GOTO TOP

DO WHILE .NOT. EOF()
SELECT mr02
APPEND BLANK
REPLACE mr02.html WITH mv02.html
SELECT mv02
SKIP
ENDDO

SELECT mr02
APPEND BLANK
REPLACE mr02.html WITH 'counter = (counter*12)/10;'
APPEND BLANK
REPLACE mr02.html WITH 'counter = Math.round(counter);'
APPEND BLANK
REPLACE mr02.html WITH IIF(m.lang=1,'window.alert("Шановний учень(ця)!\n\nВітаю Вас з проходженням тесту!\n\nВаша оцінка - "+counter+"\n\nПовідомте вчителю ваш результат!\n\n");}',;
'window.alert("Уважаемый ученик(ца)!\n\nПоздравляю Вас с прохождением теста!\n\nВаша оценка - "+counter+"\n\nСообщите учителю ваш результат!\n\n");}')
APPEND BLANK
REPLACE mr02.html WITH '</script>'

APPEND BLANK
REPLACE mr02.html WITH '<style type="text/css">'
APPEND BLANK
REPLACE mr02.html WITH '.style1 { font-family: "Times New Roman", Times, serif; font-size: medium; }'
APPEND BLANK
REPLACE mr02.html WITH '.style2 { margin-left: 8px; }'
APPEND BLANK
REPLACE mr02.html WITH '.style3 { text-align: center; }'
APPEND BLANK
REPLACE mr02.html WITH '.style4 { font-family: "Times New Roman"; font-size: medium; }'
APPEND BLANK
REPLACE mr02.html WITH '</style>'
APPEND BLANK
REPLACE mr02.html WITH '</html>'
COPY TO tmp_file.txt TYPE DELIMITED WITH ' ' AS 1251
SELECT mr03
GOTO TOP
ZAP
APPEND BLANK
APPEND MEMO mr03.test FROM tmp_file.txt OVERWRITE AS 1251
GOTO TOP
DO WHILE .NOT. EOF()
REPLACE mr03.test WITH ALLTRIM(mr03.test)
SKIP
ENDDO
GOTO TOP
SELECT mv02
USE
DELETE FILE mv02.dbf
IF nEdit <> 3
STORE RAT('\',ALLTRIM(cSave)) TO k
STORE SUBSTR(cSave,k+1) TO cFile
STORE SUBSTR(cSave,1,k) TO w1
CD &w1
SELECT mr02
GOTO TOP
STORE SUBSTR(cFile,1,LEN(cFile)-4) + '.htm' TO cFile
COPY TO tmp_file.txt TYPE DELIMITED WITH ' ' AS 1251
COPY FILE tmp_file.txt TO &cFile
DELETE FILE tmp_file.txt
CD &cDir
w16 = IIF(m.lang=1,'Файл з тестом у форматі *.HTML для розміщення його на сторінках Вашого сайту успішно згенеровано.',;
'Файл с тестом в формате *.HTML для размещения его на страницах Вашего сайта успешно сгенерирован.')
w17 = IIF(m.lang=1,'Файл збережено як:','Файл сохранен как:')
w18 = IIF(m.lang=1,'Папка: ' + w1,'Папка : ' + w1)
w19 = IIF(m.lang=1,'Назва: ' + cFile,'Название: ' + cFile)
w20 = IIF(m.lang=1,'','')
w21 = IIF(m.lang=1,'Успіхів Вам у вашій плідній праці.','Успехов Вам в вашей плодотворной работе.')
DO FORM msg_430
DO FORM rab_010
ENDIF