Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

3 вопроса (RichEdit, doc, rtf )

3.6K
11 августа 2004 года
justinX
49 / / 28.07.2004
1) Почему в RichEdit текст из файла формата RTF вывлдится неправильно(на Винде98-без таблиц,на виндеХР с неправильным форматированием) и как это всё исправить
2) Как вручную без встроенных функций прочитать
doc и rtf ?
3) Где можна найти описание ОЛЕ функций для ворда и экселя???

Если кто может что-нить подсказать, то стучите в асю 150255565, огромное спасибо!
3.6K
12 августа 2004 года
justinX
49 / / 28.07.2004
Ну хоть кто-то может мне что-нить посоветовать???:-? :-? :-?
294
12 августа 2004 года
Plisteron
982 / / 29.08.2003
Цитата:
Originally posted by justinX
1) Почему в RichEdit текст из файла формата RTF вывлдится неправильно(на Винде98-без таблиц,на виндеХР с неправильным форматированием) и как это всё исправить
2) Как вручную без встроенных функций прочитать
doc и rtf ?
3) Где можна найти описание ОЛЕ функций для ворда и экселя???

Если кто может что-нить подсказать, то стучите в асю 150255565, огромное спасибо!



1) Рекомендую использовать
RichViewб там всё нормально отображается.
2) Описание формата можно прочитать здесь или, афаир, в заметке у мелкомягких.
3) В MSDN, вестимо. Или открываешь Excel, там записываешь макрос с нужными действиями и смотришь в редакторе VBA, что получилось.

3.6K
17 августа 2004 года
justinX
49 / / 28.07.2004
Кто как в ОЛЕ (COM) получить значение переменной???


Этот кусочек задаёт таблице в Ворде в ячейке 3:3
значение....
Variant vVarCell,vVarTable;
...........
vVarCell=vVarTable.OleFunction("Cell",3,3);
vVarCell.OlePropertyGet("Range").
OlePropertySet("Text",text.c_str());
...........
А как можна получить значение из этой ячейки???
Вернее оно получается, но тип переменной--Вариант и от туда нельзя ничего вытащить...

:devil: :devil:
294
17 августа 2004 года
Plisteron
982 / / 29.08.2003
Цитата:
Originally posted by justinX
Кто как в ОЛЕ (COM) получить значение переменной???


Этот кусочек задаёт таблице в Ворде в ячейке 3:3
значение....
Variant vVarCell,vVarTable;
...........
vVarCell=vVarTable.OleFunction("Cell",3,3);
vVarCell.OlePropertyGet("Range").
OlePropertySet("Text",text.c_str());
...........
А как можна получить значение из этой ячейки???
Вернее оно получается, но тип переменной--Вариант и от туда нельзя ничего вытащить...

:devil: :devil:


У меня глупый вопрос: неужели такая конструкция

 
Код:
TVariant v;
...
OlePropertyGet("Text",v);
Char *st = v;

не работает?
3.6K
17 августа 2004 года
justinX
49 / / 28.07.2004
Цитата:
Originally posted by Plisteron

У меня глупый вопрос: неужели такая конструкция
 
Код:
TVariant v;
...
OlePropertyGet("Text",v);
Char *st = v;

не работает?





НЕ работает, я уже пробовал...

294
18 августа 2004 года
Plisteron
982 / / 29.08.2003
Цитата:
Originally posted by justinX
НЕ работает, я уже пробовал...


Странно...
У меня вот такой код работает без проблем:

Код:
#include <vcl.h>
#include <utilcls.h>
#include <AxCtrls.hpp>
#include[list=1]
#include <typinfo.hpp>
#include <typeinfo.h>

#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
    Variant objXL;        // Excel.Application
    Variant objWBs;       // Application.Workbooks
    Variant objWB;        // Workbooks(int Item) i.e. Workbook
    Variant objSheet;     // Sheet(int Item) i.e. Sheet
    Variant objCell;      // Sheet.Cell

    objXL=Variant::CreateObject("Excel.Application");
    objXL.OlePropertySet("Visible",true);
    objXL.OlePropertySet("DisplayAlerts",false);
    objWBs=objXL.OlePropertyGet("Workbooks");
    objWBs.OleProcedure("Open", "F:\\04\\Сопроводительная.xls");
    objWB=objXL.OlePropertyGet("Workbooks",1);
    objSheet=objXL.OlePropertyGet("ActiveSheet");
    objCell=objSheet.OlePropertyGet("Cells",2,2);
    Variant t =objCell.OlePropertyGet("Value");
    int i = t;
    Application->MessageBoxA(AnsiString(i).c_str(),"Test",MB_OK);
}
3.6K
18 августа 2004 года
justinX
49 / / 28.07.2004
Спасибо за помощь.Я код из последнего месседжа не проверял. Но у меня заработало вот так:
AnsiString col_4,col_7;
int x,y;
vVarCell=vVarTable.OleFunction("Cell",x,y);
vVarCell.OleFunction("Select");
col_4=vVarCell.OlePropertyGet("Range").
OlePropertyGet("Text");
...........
Интересно получается, когда я пишу текст в документ или считываю его:
...........
len=col_4.Length();
if(len>2)
//укорачиваем строку на два элемента
//(эти элементы - "\r\a"). Если их не удалять
//то перевести в другой тип значение нельзя, а
//при попытке записать в документ после
// значения переменной появляется квадратик
// (при пичати - " ` ")
{col_4.SetLength(len-2);//удалили "\r\a"
.......
/* а почему берутся эти символы тут и как от них избавится если они появляются уже в документе а не в переменной??? : */
vVarCell.OlePropertyGet("Range").
OlePropertySet("Text","Hello Word");
//OR
AnsiString st_word;
st_word="Hello Word";

vVarCell.OlePropertyGet("Range").
OlePropertySet("Text",st_word.c_str());

:) :) :) :) :angel:
3.6K
20 августа 2004 года
justinX
49 / / 28.07.2004
У меня возник есчо один вопрос:
как определить через оле функции положение курсора (координаты положения с точностью до строки и символа на странице) в документе.

Кто знает, ответте плиз!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог