word paragraph

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Dmitriy Solomnikov
Постоялец
Постоялец
 
Сообщения: 407
Зарегистрирован: 10.11.2004 (Ср) 13:04
Откуда: Москва

word paragraph

Сообщение Dmitriy Solomnikov » 20.06.2005 (Пн) 16:22

Есть документ word. В нем содержится некоторое число таблиц. Над кождой таблицей есть надпись. Мне собственно надо получить эту надпись, но я не знаю как к ней подобраться.

Я могу перебираться отдельно по параграбам и отдельно по таблицам, но вот как связаны параграфи и таблицы я не знаю.

Короче кто чем может....буду признателен. Впринципе проблему обойти удалось, но осадок остался. Надо разобраться.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 20.06.2005 (Пн) 17:42

У таблицы есть range. У него есть start. Этот start на единицу больше, чем paragraph.range.end предыдущего абзаца.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Dmitriy Solomnikov
Постоялец
Постоялец
 
Сообщения: 407
Зарегистрирован: 10.11.2004 (Ср) 13:04
Откуда: Москва

Сообщение Dmitriy Solomnikov » 23.06.2005 (Чт) 12:16

что-то у меня не получается:

Dim tp as integer = oDoc.Tables(1).Range.Start()

получается что tp = 357, а должно быть 10 !!! :(

Dmitriy Solomnikov
Постоялец
Постоялец
 
Сообщения: 407
Зарегистрирован: 10.11.2004 (Ср) 13:04
Откуда: Москва

Сообщение Dmitriy Solomnikov » 23.06.2005 (Чт) 14:38

что такое 357 понятно - это номер символа с которого начинается этот range. Т.е. перед таблицей идет шапка из 356 символов.

Вопрос: как по номеру символа определить номер параграфа к которому он принадлежит?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 23.06.2005 (Чт) 16:07

А зачем?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Dmitriy Solomnikov
Постоялец
Постоялец
 
Сообщения: 407
Зарегистрирован: 10.11.2004 (Ср) 13:04
Откуда: Москва

Сообщение Dmitriy Solomnikov » 23.06.2005 (Чт) 16:57

GSerg писал(а):А зачем?


да собственно для решения вышепоставленной задачи

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 23.06.2005 (Чт) 19:58

Dmitriy Solomnikov писал(а):Вопрос: как по номеру символа определить номер параграфа к которому он принадлежит?

Если на самом деле тебе нужен не номер параграфа, а его объект, то всё просто - Document.Range (123).Paragraphs(1)
Изображение

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 24.06.2005 (Пт) 10:44

Во-во, я об этом же...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Dmitriy Solomnikov
Постоялец
Постоялец
 
Сообщения: 407
Зарегистрирован: 10.11.2004 (Ср) 13:04
Откуда: Москва

Re: word paragraph

Сообщение Dmitriy Solomnikov » 24.06.2005 (Пт) 13:15

мне вот что надо

Dmitriy Solomnikov писал(а):Есть документ word. В нем содержится некоторое число таблиц. Над кождой таблицей есть надпись. Мне собственно надо получить эту надпись


добавлю только что эта надпись содержится в отдельном параграфе

метод
oDoc.Tables(1).Range.Start()
возвращает не номер параграфа, а номер первого символа, который содержится в таблице.

соответственно
oDoc.Tables(1).Range.Start() -1
дает номер последнего символа в нужном мне параграфе

Как по номеру этого символа получить номер параграфа. Или зная номер таблицы получить номер ее первого параграфа

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 24.06.2005 (Пт) 13:32

Ну раз с трёх раз непонятно...
Зачем тебе номер параграфа?
Изображение

Dmitriy Solomnikov
Постоялец
Постоялец
 
Сообщения: 407
Зарегистрирован: 10.11.2004 (Ср) 13:04
Откуда: Москва

Сообщение Dmitriy Solomnikov » 24.06.2005 (Пт) 14:58

oDoc.Paragraphs(.......).Range.Select()
dim text as string = oDoc.Application.Selection.Range.Text

а как еще???

Dmitriy Solomnikov
Постоялец
Постоялец
 
Сообщения: 407
Зарегистрирован: 10.11.2004 (Ср) 13:04
Откуда: Москва

Сообщение Dmitriy Solomnikov » 24.06.2005 (Пт) 15:08

все, разобрался. Надо так:

dim text as string = oDoc.Paragraphs(oDoc.Tables(1).Range.Start() -1).Range.Text

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 24.06.2005 (Пт) 19:08

Dmitriy Solomnikov писал(а):все, разобрался. Надо так:

dim text as string = oDoc.Paragraphs(oDoc.Tables(1).Range.Start() -1).Range.Text

"Не верю!" (с)

Может, всё же
dim text as string = oDoc.Range(oDoc.Tables(1).Range.Start() - 1).Paragraphs(1).Range.Text :?:
Изображение

Dmitriy Solomnikov
Постоялец
Постоялец
 
Сообщения: 407
Зарегистрирован: 10.11.2004 (Ср) 13:04
Откуда: Москва

Сообщение Dmitriy Solomnikov » 27.06.2005 (Пн) 14:51

tyomitch писал(а):dim text as string = oDoc.Range(oDoc.Tables(1).Range.Start() - 1).Paragraphs(1).Range.Text :?:


tyomitch, sorry, так и надо (не дописал кое что :) )


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 22

    TopList