[Решено]QAxObject чтение файлов
Здравсвуйте, уважаемые форумчане.
Есть проблема – точно не представляю как прочесть файл разрешения .doc, .docx с помощью QAxObject.
Сразу оговорюсь – много лазил в сети и даже писал на этот же форум в англоязычный раздел. писал на этот же форум в англоязычный раздел [qt-project.org]
Про открытие и вставку текста в файл я примерно понял – выше это подробно описано. Однако процесс чтения текста (желательно без разметки) остаётся тайной, покрытой мраком. Документация, сгенерированная тем же QAxObject тоже не прояснила ситуацию.
Помогите, пожалуйста.
3 replies
Привет.
Уже наверно догадался после англо-форума, что все дело тут в Visual Basic.
methods, properties, events все оттуда. если чего нужно сделать с текстом, файлом или самим Вордом почитай справку именно по Visual Basic.
Итак чтение.
как мне кажется (может ошибочно) самый простой способ чтение по словам:
читать будем в QTextEdit
- QAxObject *docA = word->querySubObject("ActiveDocument"); //в продолжение анго-поста
- QAxObject *words = docA->querySubObject("Words");
- int countWord = words->dynamicCall("Count()").toInt(); //кол-во слов в тексте
- //на самом деле он обманывает, считает зараза с пробелами :(
- for (int a = 1; a <= countWord; a++){
- textResult.append(words->querySubObject("Item(int)", a)->dynamicCall("Text()").toString());
- }
- ui->textEdit->setText(textResult);
В помощь посоветовал порекомендовал бы книгу В.Корнякова “Программирование документов и приложений MS Office в Delphi”. для с++ похожего не находил.
Так, вроде работает. Осталась одна загвоздка. При таком чтении файла, конец строки обозначается странным символом. Я не знаю как указать программе на конец строки.
Задача следующая:
- for (int a = 1; a <= countWord; a++)
- textResult.append(words->querySubObject("Item(int)", a)->dynamicCall("Text()").toString());
То есть я хочу разделить получившуюся строку на элементы массива, но символне распознается. Можно как-то определить конец строки средствами Visual Basic? Или как обозначить этот символ, чтобы Qt могла его воспринять?
You must log in to post a reply. Not a member yet? Register here!
