На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi · Книги по Delphi
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться:
1. Преобразовать переменную типа String в тип PChar (PAnsiChar)
2. Как "свернуть" программу в трей.
3. Как "скрыться" от Ctrl + Alt + Del (заблокировать их и т.п.)
4. Как прочитать список файлов, поддиректорий в директории?
5. Как запустить программу/файл?
... (продолжение следует) ...

Вопросы, подробно описанные во встроенной справочной системе Delphi, не несут полезной тематической нагрузки, поэтому будут удаляться.
Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.


Внимание
Попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки бан.
Мат в разделе - бан на три месяца...
Модераторы: jack128, D[u]fa, Shaggy, Rouse_
  
> Закрыть файл
    Подскажите с таким вопросом!
    Как проверит открыт файл или нет
    и если открыт, то закрыть его.
    Если нет то далее идет работа с файлом.
    Самое главное как проверить и закрыть файл.
    Спасибо!!!!
      Не понял! Ты что, запускаешь свою программу и хочешь знать, открыт ли файл, который она будет использовать?
        Да просто там идет экспорт данных в ексель.
        Запустят программы откроют этот файл,
        забудут закрыть его просто и снова
        нажмут экспорт.
        программа выдаст ошибку типа "Ресурс занят".
        Хотелось бы чтоб проста закрыла(сама программа)
        файл и произвела экспорт и открыла этот файл екселя.
        Программа делает все экспорт, открытие.
        Хотелось бы добавить и это
          А кнопку "Экспорт" задисаблить религия не позволяет? У вас там что - каждые 5 минут экспортируют?
            Цитата Сан Иваныч @
            А кнопку "Экспорт" задисаблить религия не позволяет?

            По какой причине она задизаблена? Из-за того, что эксель запущен? Лучше имя файла экспорта поменять.

            Решить задачу можно только закрыв открытый файл в экселе или сам эксель.
              Имя конечно можно поменять, а если все в один файл надо скидывать????
              как тут поступить, потом руками туда добавлять
              лишняя работа будет только.
              Лучше варианта чем закрыть файла я не вижу.
              Помогите плиз
              хоть на толкните как...
              Спасибо
                Цитата AlikV @
                Как проверит открыт файл или нет
                и если открыт, то закрыть его.

                Цитата AlikV @
                программа выдаст ошибку типа "Ресурс занят".

                AlikV наличие ошибки и является признаком, что файл открыт. :D Обрабатывай ошибку в программе, а не доводи дело до глобального обработчика и все. :) А обработка заключается в закрытии файла, зависит от того как открываешь его.
                  Компонент использую QExport3XLS.
                  Вызываю открытие нажатием кнопки.
                  ExpandedWrap disabled
                    QExport3XLS1.Execute;

                  там сам компонент большее делает за меня, чем я кода описываю
                    а если закрыть файл который не открыт? критической же ошибки не будет ? вот ты и закрывай его перед тем как туда что-то дописывать!
                      [б]нащок78[/б]
                      Извини не понял как это
                      Цитата
                      а если закрыть файл который не открыт?

                      :)

                      Добавлено
                      nawok78(тут подвела кнопоска одна СОРРИ)
                      Извини не понял как это
                      Цитата
                      Извини не понял как это

                      :)
                        Цитата AlikV @
                        Извини не понял как это

                        а как ты собираешься программно закрывать Ехель?
                        найти Эксель и закрыть! есть CreateOleObject - может и FindOleObject есть?
                        я всего лишь идею подсказал а не пути реализации... 1 раз всего лишь с ним работал...
                        там я создаю Оле-объект затем его уничтожаю...
                          Походу эта задача не разрешима.
                          Так подумал если файл был изменен и не сохранен.
                          То после закрытия может и не спросить сохранить или нет.
                          Просто возьмет и убъет всю инфу.
                          Мда....... <_<
                          Че делать :wall:
                            Перед экспортом проверять открыт файл или нет. Если открыт, то тогда выводить сообщение, тчо типа файл открыт, закройте его...
                            Только так ...
                              Да Marriage тоже идея хорошо.
                              Подскажи тогда как проверить его открытие.
                              Никогда не сталкивался с таким
                              Спасибо
                                Цитата medved_68 @
                                AlikV наличие ошибки и является признаком, что файл открыт. :D Обрабатывай ошибку в программе, а не доводи дело до глобального обработчика и все. :) А обработка заключается в закрытии файла, зависит от того как открываешь его.

                                ExpandedWrap disabled
                                  procedure TForm1.Button1Click(Sender: TObject);
                                  var
                                  CurrentFile:integer;
                                  begin
                                   
                                   CurrentFile := FileOpen('J:\ШПОРА ГОТОВАЯ.doc', fmOpenReadWrite);
                                   If CurrentFile < 0 then
                                    Begin
                                     ShowMEssage('Не могу открыть файл');
                                     exit;
                                    End;
                                   FileClose(CurrentFile);
                                   
                                   
                                  end;
                                Сообщение отредактировано: Marriage -
                                  Спасибо
                                  1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                  0 пользователей:


                                  Рейтинг@Mail.ru
                                  [ Script execution time: 0,0365 ]   [ 15 queries used ]   [ Generated: 1.08.25, 12:03 GMT ]