TVariant v;
...
OlePropertyGet("Text",v);
Char *st = v;
3 вопроса (RichEdit, doc, rtf )
2) Как вручную без встроенных функций прочитать
doc и rtf ?
3) Где можна найти описание ОЛЕ функций для ворда и экселя???
Если кто может что-нить подсказать, то стучите в асю 150255565, огромное спасибо!
Ну хоть кто-то может мне что-нить посоветовать???:-? :-? :-?
Цитата:
Originally posted by justinX
1) Почему в RichEdit текст из файла формата RTF вывлдится неправильно(на Винде98-без таблиц,на виндеХР с неправильным форматированием) и как это всё исправить
2) Как вручную без встроенных функций прочитать
doc и rtf ?
3) Где можна найти описание ОЛЕ функций для ворда и экселя???
Если кто может что-нить подсказать, то стучите в асю 150255565, огромное спасибо!
1) Почему в RichEdit текст из файла формата RTF вывлдится неправильно(на Винде98-без таблиц,на виндеХР с неправильным форматированием) и как это всё исправить
2) Как вручную без встроенных функций прочитать
doc и rtf ?
3) Где можна найти описание ОЛЕ функций для ворда и экселя???
Если кто может что-нить подсказать, то стучите в асю 150255565, огромное спасибо!
1) Рекомендую использовать
RichViewб там всё нормально отображается.
2) Описание формата можно прочитать здесь или, афаир, в заметке у мелкомягких.
3) В MSDN, вестимо. Или открываешь Excel, там записываешь макрос с нужными действиями и смотришь в редакторе VBA, что получилось.
Этот кусочек задаёт таблице в Ворде в ячейке 3:3
значение....
Variant vVarCell,vVarTable;
...........
vVarCell=vVarTable.OleFunction("Cell",3,3);
vVarCell.OlePropertyGet("Range").
OlePropertySet("Text",text.c_str());
...........
А как можна получить значение из этой ячейки???
Вернее оно получается, но тип переменной--Вариант и от туда нельзя ничего вытащить...
:devil: :devil:
Цитата:
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:
Кто как в ОЛЕ (COM) получить значение переменной???
Этот кусочек задаёт таблице в Ворде в ячейке 3:3
значение....
Variant vVarCell,vVarTable;
...........
vVarCell=vVarTable.OleFunction("Cell",3,3);
vVarCell.OlePropertyGet("Range").
OlePropertySet("Text",text.c_str());
...........
А как можна получить значение из этой ячейки???
Вернее оно получается, но тип переменной--Вариант и от туда нельзя ничего вытащить...
:devil: :devil:
У меня глупый вопрос: неужели такая конструкция
Код:
не работает?
Цитата:
Originally posted by Plisteron
У меня глупый вопрос: неужели такая конструкция
не работает?
У меня глупый вопрос: неужели такая конструкция
Код:
TVariant v;
...
OlePropertyGet("Text",v);
Char *st = v;
...
OlePropertyGet("Text",v);
Char *st = v;
не работает?
НЕ работает, я уже пробовал...
Цитата:
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);
}
#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);
}
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:
как определить через оле функции положение курсора (координаты положения с точностью до строки и символа на странице) в документе.
Кто знает, ответте плиз!