2013-07-08 3 views
0

Мне нужно получить содержимое (тексты для некоторых упражнений) из нескольких документов слова (много их) и преобразовать их, чтобы они могли быть загружены в приложение Javascript.сценарий для разбора слова документа

Пример содержания этих слов документов:


1.Text вопрос 1

ответ 1
ответ 2
ответ 3

2.Text вопрос 2 с одним _ _ _ _ _ _ _ или больше.

ответ 1
ответ 2
ответ 3

и т.д.


Таким образом, есть одна строка с вопросом, пустая строка, а затем 3 линии с возможными ответами. В примере я поставил 2 вопроса, но может быть 12+ на слово документ. Обратите внимание, что слова в тексте вопроса могут быть подчеркнуты или выделены жирным шрифтом. Также могут быть пробелы (представленные несколькими _ символами, с промежутками между ними или без них).

Формат вывода этих слов документов было бы что-то вроде:

var questions = [ 
{ 
label : "1.Text question 1", 
options : ["answer 1", "answer 2", "answer 3"], 
answer : [1] //Here I will need to set the right answer, probably manually 
}, 
{ 
label : "1.Text <strong>question</strong> 2", 
options : ["answer 1", "answer 2", "answer 3"], 
answer : [0] //Here I will need to set the right answer, probably manually 
}, 
etc 
]; 

Так что основной ассоциативный массив в JS. Обратите внимание, что клавиша «label» будет содержать текст вопросов в формате html (так что в примере есть тег <strong>, чтобы отразить жирное слово во втором вопросе).

Я ищу сценарий, который принимает в качестве входного документа Word, как пример, и выводит JS-файл также как мой пример вывода (если это текстовый файл, который также работает). Языки сценариев были бы лучше, если бы это был PHP или Javascript. Это нормально, если мне нужно немного поработать над текстовыми документами, чтобы адаптировать что-то, чтобы упростить сценарий.

Основная задача для меня заключается в том, как сохранить все текстовые стили (полужирный, подчеркивание, пробелы ...), который может иметь текст, в противном случае преобразование их в простые файлы txt, я думаю, будет работать ...

Любая помощь с этим была бы оценена!

+0

пытались ли вы что-нибудь еще? –

+0

Вы решили сохранить их как html в первую очередь. –

ответ

0

Предполагая, что новые линии, как описано, разбиты на новые линии и делают выбор в зависимости от пустых строк, например.

function parse(str) { 
    var a = str.split('\n'), // split input and var everything 
     flag = 0, question = -1, qLine = 0, i, 
     questions = []; 
    for (i = 0; i < a.length; ++i) { // loop over lines 
     if (!a[i]) {   // if blank line, 
      flag = 1 - flag; // flip choice 
      qLine = 0;  // reset multi-line counter 
     } 
     else if (flag === 0) { // if question line 
      if (qLine === 0) { // if new question 
       questions.push({ // add to questions 
        label: a[i], 
        options: [], 
        answer: [] 
       }); 
       ++question;  // and increase question count 
      } else {    // else multi-line question 
       questions[question].label += '\n' + a[i]; // add to label 
      } 
      ++qLine;    // either way increase multi-line counter 
     } 
     else if (flag === 1) { // if answer line 
      questions[question].options.push(a[i]);  // add answer 
     } 
    } 
    return questions; 
} 

Тогда

parse('1.Text question 1\n\ 
\n\ 
answer 1\n\ 
answer 2\n\ 
answer 3\n\ 
\n\ 
2.Text question 2 with one _ _ _ _ _ _ _ or more.\n\ 
\n\ 
answer 1\n\ 
answer 2\n\ 
answer 3\n\ 
'); 
/* 
[ 
    { 
     "label": "1.Text question 1", 
     "options": [ 
      "answer 1", 
      "answer 2", 
      "answer 3" 
     ], 
     "answer": [] 
    }, 
    { 
     "label": "2.Text question 2 with one _ _ _ _ _ _ _ or more.", 
     "options": [ 
      "answer 1", 
      "answer 2", 
      "answer 3" 
     ], 
     "answer": [] 
    } 
] 
*/ 
+0

спасибо за ваш ответ. Как мне «читать» здесь форматирование текста? если есть жирные слова, подчеркнутые слова и т. д. – Albert

+0

@Albert входная строка заботится только о новых строках, если у вас есть какие-либо теги, они будут отправлены точно так, как они есть. –

+0

ну, это моя проблема ... нет «тегов», это не html, это документ слов.Преобразование всего в html добавило бы еще много тегов, которые заставили бы ваш код работать не ... – Albert

Смежные вопросы