Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

20 Август 2017, 05:07 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Вы можете задать вопрос по LibreOffice или Apache OpenOffice  без регистрации, используя форму
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Ошибка при прерывании функции – "Объектная переменная не определена" (решено)  (Прочитано 307 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Dr_Lecter
Новичок
*
Offline Offline

Пол: Мужской
Расположение: г.Нжневартовск (ХМАО-Югра)
Сообщений: 49


« Стартовое сообщение: 27 Март 2017, 20:20 »

В программе часто используется функция для выбора файла для чтения его в строковую переменную.
Установлено Option Explicit
Переменная внутри функции объявлена.
Если выбираешь файл для чтения – все ОК!
Но при нажатии "Отмена" в диалоге выбора файла ругаться на строку "oInputStream.CloseInput()" – "Объектная переменная не определена"
Раньше такого не было – проблема после последнего обновления OO до 4.1.3 проверено на Mac OS X 10.11.6 и Win 10 Pro

Сама функция:

Код:
Function sReadTextFileToString(sInputFilename AS String) AS String
Dim oUcb as Object
Dim oInputStream as Object
Dim oInputFile AS Object
Dim sCurrentLine AS String
oUcb = createUnoService("com.sun.star.ucb.SimpleFileAccess")
If oUcb.Exists(sInputFilename) Then
oInputStream = createUnoService("com.sun.star.io.TextInputStream")
oInputFile = oUcb.OpenFileReadWrite(sInputFilename)
oInputStream.SetInputStream(oInputFile.GetInputStream)
Do While not oInputStream.IsEOF
sCurrentLine = oInputStream.ReadLine
If sCurrentLine <> "" Then
sReadTextFileToString = sReadTextFileToString & sCurrentLine & Chr(10)
End If
Loop
End If
oInputStream.CloseInput()
End Function
« Последнее редактирование: 28 Март 2017, 11:50 от Dr_Lecter » Записан
Yakov
Администратор
*
Offline Offline

Сообщений: 2 225


WWW
« Ответ #1: 27 Март 2017, 20:56 »

Поменяйте местами
Код:
End If
и
Код:
oInputStream.CloseInput()
Записан

Dr_Lecter
Новичок
*
Offline Offline

Пол: Мужской
Расположение: г.Нжневартовск (ХМАО-Югра)
Сообщений: 49


« Ответ #2: 28 Март 2017, 11:52 »

Yakov

Спасибо!  Всё хорошо
Записан
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!