Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.12.05;
Скачать: [xml.tar.bz2];

Вниз

Microsoft Word   Найти похожие ветки 

 
tormoz   (2004-11-21 21:26) [0]

Подскажите пожалуйста коды непечатаемых символов в Word.
То есть Enter=#13, пробел=#32...
Мне нужны коды других непечатаемых символов: Окочания ячейки таблицы, конца строки таблицы, перевод строки в ячейке таблицы и другие.
Помогоите!!!


 
KilkennyCat ©   (2004-11-21 21:32) [1]


> Окочания ячейки таблицы, конца строки таблицы

с чего Вы взяли, что это делается через непечатаемые символы? см. формат MSWord8


 
tormoz   (2004-11-21 21:37) [2]


> KilkennyCat ©   (21.11.04 21:32) [1]

Где смотреть?
При прохождении по символам вордовского документа(Wordapplication.Selection.MoveRight) и замене некоторых символов (по некоторому алгоритму вычисляются позиции этих символов от начала документа) на другие, программы пытается заменить также непечатные символы(все вышеперечисленные, не знаю, может попадуться еще и другие), мне надо вставить обработку, чтобы не трогать эти символы, пропускать их


 
KilkennyCat ©   (2004-11-21 21:45) [3]

тогда может просто трогать печатаемые?


 
tormoz   (2004-11-21 21:49) [4]


> KilkennyCat ©   (21.11.04 21:45) [3]

Я думал об этом, но алгоритм расчитывает позицию символаот начала текста, и потом, тогда надо знать все печатаемые, то есть хранить их где-то отдельно и сравнивать каждый раз символ под курсором с этим справочником :-( ?????
Или я что-то не правильно понимаю?


 
YurikGL ©   (2004-11-21 21:58) [5]


> tormoz   (21.11.04 21:26)  

Попробуй взять в буфер и посмотреть его содержимое.
Или скопировать в строку участок текста типа w1.activedocument.range(начало,конец).text где между начальным символом и конечным есть искомые символы а потом эту строку посмотреть через watch или integer(st[номер искомого символа])

Хотя, насколько я помню, с буфером в свое время у меня что-то не получилось.


 
YurikGL ©   (2004-11-21 22:01) [6]


> При прохождении по символам вордовского документа(Wordapplication.Selection.MoveRight)
> и замене некоторых символов (по некоторому алгоритму вычисляются
> позиции этих символов от начала документа) на другие, программы
> пытается заменить также непечатные символы(все вышеперечисленные,
> не знаю, может попадуться еще и другие), мне надо вставить
> обработку, чтобы не трогать эти символы, пропускать их


А зачем moveleft? не проще что-то типа

for i:=1 to w1.activedocument.character.count do begin
 по определенному алгоритму работаем с
 w1.activedocument.character.items[i]
end;


 
tormoz   (2004-11-21 22:04) [7]


> YurikGL ©   (21.11.04 22:01) [6]


> for i:=1 to w1.activedocument.character.count do begin
>  по определенному алгоритму работаем с
>  w1.activedocument.character.items[i]
> end;

Разницы нет, но как мне символ пропустить, чтобы он не обрабатывался?
Кстати, программа еще рисунки считает каким-то символом и заменяет их тоже :-(


 
YurikGL ©   (2004-11-21 22:15) [8]

tormoz   (21.11.04 22:04) [7]

WordApplication1.Connect;
vr2:=WordApplication1.ActiveDocument.Characters.Count;
WordApplication1.ActiveDocument.Range(vr1,vr2).Text;
try
for i1:=1 to WordApplication1.ActiveDocument.Characters.Count do
 if char(WordApplication1.ActiveDocument.Characters.Item(i1).Text[1]) in ["A".."Z","a".."z"{ ну и все печатные символы}]
   then WordApplication1.ActiveDocument.Characters.Item(i1).Text:="1";//каждый символ меняем на "1"
WordApplication1.Disconnect;


 
YurikGL ©   (2004-11-21 22:17) [9]

в YurikGL ©   (21.11.04 22:15) [8] фигню написал местами

WordApplication1.Connect;
for i1:=1 to WordApplication1.ActiveDocument.Characters.Count do
 if char(WordApplication1.ActiveDocument.Characters.Item(i1).Text[1]) in ["A".."Z","a".."z" ,"a".."z"{ ну и все печатные символы}]
   then WordApplication1.ActiveDocument.Characters.Item(i1).Text:="1";//каждый символ меняем на "1"
except
WordApplication1.Disconnect;
end;
WordApplication1.Disconnect;


 
tormoz   (2004-11-21 22:22) [10]


> YurikGL ©   (21.11.04 22:15) [8]

на строку с in выдает Invalid typecast


 
YurikGL ©   (2004-11-21 22:27) [11]


> tormoz   (21.11.04 22:22) [10]

Попробуй поиграться с преобразованием типов в

if char(WordApplication1

или попробуй

in [ #код символа "a"..#код символа "z"{ ну и все печатные символы}]

Кстати, у меня все работает D7 компоненты для office2000

procedure TForm1.Button2Click(Sender: TObject);
var
i1:shortint;
Begin
try

WordApplication1.Connect;
for i1:=1 to WordApplication1.ActiveDocument.Characters.Count do
if char(WordApplication1.ActiveDocument.Characters.Item(i1).Text[1]) in ["A".."Z","a".."z" ,"a".."z"{ну и все печатные символы}]
  then WordApplication1.ActiveDocument.Characters.Item(i1).Text:="1";//каждый символ меняем на "1"
except
WordApplication1.Disconnect;
end;
WordApplication1.Disconnect;
end;


 
YurikGL ©   (2004-11-21 22:33) [12]

Еще вариант

procedure TForm1.Button2Click(Sender: TObject);
var
ch:char;
i1:shortint;
Begin
try

WordApplication1.Connect;
for i1:=1 to WordApplication1.ActiveDocument.Characters.Count do begin
ch:=char(WordApplication1.ActiveDocument.Characters.Item(i1).Text[1]);
if ch in ["A".."Z","a".."z" ,"a".."z"{ íó è âñå ïå÷àòíûå ñèìâîëû}]
  then WordApplication1.ActiveDocument.Characters.Item(i1).Text:="1";//êàæäûé ñèìâîë ìåíÿåì íà "1"
                                                                 end;
except
WordApplication1.Disconnect;
end;
WordApplication1.Disconnect;


 
tormoz   (2004-11-21 22:39) [13]


> YurikGL ©   (21.11.04 22:33) [12]

Смысл тот же. что и [11]. У меня ругается на in, даже если я копирую код один в один. Раньше эта функция работала как надо, на целых числах чейчас работает, а на символах нет


 
YurikGL ©   (2004-11-21 22:43) [14]


> tormoz   (21.11.04 22:39) [13]

Все, что могу посоветовать - написать функцию типа

function BeMyChar(input:char):boolean;
var
f:boolean;
Begin
case input of
 "a": BeMyChar:=true;
 "b": BeMyChar:=true;
 "c": BeMyChar:=true;
...
 else    BeMyChar:=false;

end;


Хотя лучше все же с in разобраться


 
tormoz   (2004-11-21 22:47) [15]


> YurikGL ©   (21.11.04 22:43) [14]

:-)

ладно спасибо за помощь. буду продолжать разбираться завтра.

Если кто знает, пишите!
Желательно с W:=CrearteOleObj("word.application");


 
YurikGL ©   (2004-11-21 23:06) [16]

Обманул я ее :-)

var
st:string;
app,vr1,vr2:Variant;

try
app := CreateOleObject("Word.Application");
App.Visible := True;

//делаем что надо...
for i1:=1 to app.ActiveDocument.Characters.Count do begin
st:=(app.ActiveDocument.Characters.item(i1).Text);
if st[1] in ["A".."Z","a".."z"]  
  then app.ActiveDocument.Characters.item(i1).Text:="1";
                                                   end;
finally
 App:=Unassigned;
end;


З.Ы. tormoz, Я хочу небольшой фак по этим вещам собрать. Если можешь отпиши мне свои координаты на yglushchenko[ #!#]polygon-group.ru или в аське со мной свяжись.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.12.05;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.033 c
6-1095843465
Неуч
2004-09-22 12:57
2004.12.05
Выбор сетевого интерфейса.


1-1101217579
Dmitry_04
2004-11-23 16:46
2004.12.05
Форма в DLL с CheckBox-ом и RadioButton-ом


3-1099045583
studentRSU
2004-10-29 14:26
2004.12.05
База данных без дополнительных драйверов


1-1101109577
Артем К.
2004-11-22 10:46
2004.12.05
Компонент TreeView, чтобы узел дерева имел несколько колонок?


1-1101283428
fisherman
2004-11-24 11:03
2004.12.05
Исключительная ситуация





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский