Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Lazarus, Free Pascal, CodeTyphon
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.11.2015, 11:54   #11
AndrzejX
Пользователь
 
Регистрация: 12.11.2008
Сообщений: 55
По умолчанию

Понятно, спасибо. Конечно, подожду, я не тороплюсь.
AndrzejX вне форума Ответить с цитированием
Старый 06.11.2015, 12:25   #12
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Заряди так:
Код:
 try
  Excel:=CreateOleObject('Excel.Application');
  if FileExists(FileName) then  Excel.WorkBooks.Open(FileName)
  else ShowMessage('"'+FileName+'" Не существует' );
 except
  on E:Exception do ShowMessage(SysErrorMessageUTF8(GetLastOSError));
 end;
И Скрин ошибки в студию.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.11.2015, 12:43   #13
AndrzejX
Пользователь
 
Регистрация: 12.11.2008
Сообщений: 55
По умолчанию

Подозрение что система не воспринимает имя файла? Нет, латиницу нормально воспринимает. Я оставил только:

Код:
  
if FileExists(FileName)
    then ShowMessage('Существует')
    else ShowMessage('Не существует');
Сообщение: Существует.

Если вместо сообщения заставить открыть файл, то ошибка

??? Add ???? WorkBooks ????????

Вот скрин сообщения об ошибке

Я был невнимателен. Но когда я скопировал ваш код полностью, то вышло сообщение:

Операция успешно завершена
Изображения
Тип файла: jpg Чтение Excel файлов.jpg (117.2 Кб, 153 просмотров)

Последний раз редактировалось Stilet; 06.11.2015 в 13:13.
AndrzejX вне форума Ответить с цитированием
Старый 06.11.2015, 13:15   #14
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
когда я скопировал ваш код полностью, то вышло сообщение
Ану покаж код полностью.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.11.2015, 13:16   #15
AndrzejX
Пользователь
 
Регистрация: 12.11.2008
Сообщений: 55
По умолчанию

Код:
procedure ReadExcelFile(FileName, Sheet: String; ColCount, RowCount: Integer; var Region: TRegion);
var Excel: Variant;
 i, j: Integer;
begin
try
  Excel:=CreateOleObject('Excel.Application');
  if FileExists(FileName)
    then  Excel.WorkBooks.Open(FileName)
    else ShowMessage('"'+FileName+'" Не существует' );
 except
  on E:Exception do ShowMessage(SysErrorMessageUTF8(GetLastOSError));
 end;
 Excel.Quit;
end;
AndrzejX вне форума Ответить с цитированием
Старый 06.11.2015, 13:59   #16
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Так, и что, если сделать пошаговку, то выполнение попадет на исключение?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.11.2015, 14:24   #17
AndrzejX
Пользователь
 
Регистрация: 12.11.2008
Сообщений: 55
По умолчанию

Delphi перехватывает блоки try/except, если не сделать исключение, но как это сделать в Lazarus я не соображу. Ошибка возникает до except в среде Lazarus. При пошаговом выполнении строка

then Excel.WorkBooks.Open(FileName)

пропускается, на строке

else ShowMessage('"'+FileName+'" Не существует' );

выскакивает ассемблер. Даже если FileName закомментировать.


Так что хрень чего понятно. Я тут параллельно устанавливаю CodeTyphon, небыстрое это дело, Delphi7 побыстрее стала.

Последний раз редактировалось AndrzejX; 06.11.2015 в 14:31.
AndrzejX вне форума Ответить с цитированием
Старый 06.11.2015, 15:11   #18
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А ты его (проект) хоть скомпилировал то?
Если не скомпилить, отладчик может лажать, потому что он GDB.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.11.2015, 15:54   #19
AndrzejX
Пользователь
 
Регистрация: 12.11.2008
Сообщений: 55
По умолчанию

Это называется "Испорченный телефон". Что я как передаточное звено. Ещё я дальтоник и зелёную стрелочку от красного квадратика не отличаю...
AndrzejX вне форума Ответить с цитированием
Старый 06.11.2015, 19:02   #20
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Это называется "Испорченный телефон".
Ты не понял )
GDB в лазарусе не всегда нормально срабатывает - приходится перестраивать проект.
Код правильный, ошибок давать не должен, соответственно нужно проводить отладку и смотреть что не так.
Хорошо - по другому:
Код:
procedure ReadExcelFile(FileName, Sheet: String; ColCount, RowCount: Integer; var Region: TRegion);
var Excel: Variant;
 i, j: Integer;
 Excel,book:OleVariant;
begin

 if not FileExists(FileName) then begin
  ShowMessage('Файл не найден "'+FileName+'"');
  Exit;
 end;

 try
  Excel:=CreateOleObject('Excel.Application');
 except
  on E:Exception do begin
    ShowMessage('Ошибка запуска Экзеля: '+SysErrorMessageUTF8(GetLastOSError));
    exit;
  end;
 end;

 try
  book:=Excel.WorkBooks;
  if not Assigned(book) then begin ShowMessage('Коллекция не получена'); Excell:=unassigned; exit; end;
  book.Open(FileName);
 except
  on E:Exception do begin
    ShowMessage('Ошибка Открытия файла "'+FileName+'": '+SysErrorMessageUTF8(GetLastOSError));
  end;
 end;

 Excel.Quit;
 Excel:=unassigned;
end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Lazarus в Linux - Поиск файлов в папке BLACK_RAIN Lazarus, Free Pascal, CodeTyphon 4 08.10.2014 11:23
Обработка файлов(lazarus). Chelovekpredel Lazarus, Free Pascal, CodeTyphon 2 23.09.2012 12:14
Чтение и запись больших excel файлов на c# Bi0max C# (си шарп) 0 21.08.2012 20:33
Lazarus подключение .so, .dll файлов Diez_ Lazarus, Free Pascal, CodeTyphon 19 07.07.2011 21:23
Открытие html-файлов в Lazarus student2008 Lazarus, Free Pascal, CodeTyphon 2 25.12.2010 11:07