Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.08.17;
Скачать: CL | DM;

Вниз

Не возникает ошибка при удалении открытого документа (WORD)   Найти похожие ветки 

 
Раиса ©   (2008-07-14 12:40) [0]

Пишу так:

try
DeleteFile(S);
except
Application.MessageBox("Ошибка! Вероятно, открыт документ с именем разрешения!","Сообщение",mb_Ok+mb_ICONINFORMATION);
Exit;
end;

и мечтаю, что вывалится ошибка,если документ (вордовый) с таким именем уже открыт.
Но в try .... Except программа не заходит.
Вопрос: почему? и что нужно сделать, чтобы проверить, открыт или нет документ с таким именем?


 
Palladin ©   (2008-07-14 12:41) [1]

потому что DeleteFile - функция и никакого исключения она не возбуждает...


 
Johnmen ©   (2008-07-14 12:44) [2]

DeleteFile+F1, как обычно.


 
Раиса ©   (2008-07-14 12:47) [3]

Вот я и интересуюсь:
1. или чем заменить DeleteFile, чтобы было как в Винде получить сообщение о невозможности удаления ткрытого файла
2. или как проверить, что вордовый файл уже открыт.


 
Поросенок Винни-Пух ©   (2008-07-14 12:49) [4]

deletefile скажет тебе человеческим голосом что файл нельзя удалить


 
Palladin ©   (2008-07-14 12:49) [5]

1. Зачем его заменять?
2. Повторяю, DeleteFile - это функция. Ты знаешь что такое функция?


 
Раиса ©   (2008-07-14 12:50) [6]

Не хочу проверять на наличие файла и на False/True возвращает Deleeile.


 
Поросенок Винни-Пух ©   (2008-07-14 12:51) [7]

Раиса Захаровна, вас поуговаривать?


 
Раиса ©   (2008-07-14 12:52) [8]

deletefile возвращает False, если файл не удаляется (то ли нету его, то ли нельзя удалить)


 
Поросенок Винни-Пух ©   (2008-07-14 12:52) [9]

Удалено модератором


 
Palladin ©   (2008-07-14 12:53) [10]

мдя... :) бывает...


 
Раиса ©   (2008-07-14 12:54) [11]

Поросенок Винни-Пух ©   (14.07.08 12:51) [7]

Я не хочу:
1. проверять на Exists
2. на то, что возвращает DeleteFile

Хочу поприличнее написать. Вот и спрашиваю, как.


 
Palladin ©   (2008-07-14 12:56) [12]


> Раиса ©   (14.07.08 12:54) [11]

используй Windows.DeleteFile, см. справку Windows SDK на предмет этой функции и все желания твои будут исполнены...


 
Правильный$Вася   (2008-07-14 12:57) [13]


> Я не хочу:1. проверять на Exists2. на то, что возвращает
> DeleteFile

религия запрещает?
это и есть "поприличнее"


 
oldman ©   (2008-07-14 12:58) [14]


> Не возникает ошибка при удалении открытого документа (WORD)


А как себя ведет собственно WORD при данном казусе?

(извините уж, но сам проверять не хочу)


 
Palladin ©   (2008-07-14 12:59) [15]


> oldman ©   (14.07.08 12:58) [14]

а как он должен себя вести?


 
Раиса ©   (2008-07-14 12:59) [16]

Поросенок Винни-Пух ©   (14.07.08 12:51) [7]
А попроще отчество нельзя было придумать?

Palladin ©   (14.07.08 12:56) [12]
Спасибо, посмотрю.

Это я пока еще хочу удалить файл, а завтра,  может быть, не захочу, но проверять на открыт или нет вордовый файл все равно надо будет.

Вот и спрашиваю как...


 
Поросенок Винни-Пух ©   (2008-07-14 13:01) [17]

"Людк, а Людк! тьфу деревня"


 
oldman ©   (2008-07-14 13:02) [18]


> Palladin ©   (14.07.08 12:59) [15]
> а как он должен себя вести?


Как минимум, возмутиться, что, мол, открытое мною испарилось без разрешения...


 
Palladin ©   (2008-07-14 13:05) [19]

ну ептыть... хочу не хочу... буду не буду...
программирование ничего общего с мужской особью не имеет и не надо эээ... <вырезано цензурой> мозги

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


 
Поросенок Винни-Пух ©   (2008-07-14 13:06) [20]

Пишу так:

try
DeleteFile(S);
except
Application.MessageBox("Ошибка! Вероятно, открыт документ с именем разрешения!","Сообщение",mb_Ok+mb_ICONINFORMATION);
Exit;
end;


Пиши так
if not DeleteFile then Raise Exception.CreateFmt("Ошибка! Вероятно, открыт документ с именем разрешения!",[GetLastError])


 
Palladin ©   (2008-07-14 13:07) [21]


> oldman ©   (14.07.08 13:02) [18]

не возмутится, потому как открывает с флагом ShareDenyWrite


 
Игорь Шевченко ©   (2008-07-14 13:07) [22]


> Это я пока еще хочу удалить файл, а завтра,  может быть,
>  не захочу


> Вот и спрашиваю как...


завтра и спроси :)


 
дядя Митя   (2008-07-14 13:19) [23]

Удалено модератором


 
дядя Митя   (2008-07-14 13:21) [24]

Удалено модератором


 
Anatoly Podgoretsky ©   (2008-07-14 13:51) [25]


> Раиса ©   (14.07.08 12:59) [16]

Win32Check (DeleteFile(...));


 
Раиса ©   (2008-07-14 14:11) [26]

1.Ошибка возникает при сохранении вордового файла (saveAs).
2. Вопрос, как проверить, что файл с определенным именем открыт.

Ответов не было.


 
Плохиш ©   (2008-07-14 14:18) [27]


> Ответов не было.

Свова экзамен мы не сдали, ах какая жаласть...


 
имя   (2008-07-14 14:20) [28]

Удалено модератором


 
Palladin ©   (2008-07-14 14:24) [29]


> Раиса ©   (14.07.08 14:11) [26]

читать [19] второй абзац до полного просветления...


 
Раиса ©   (2008-07-14 14:31) [30]

Palladin ©   (14.07.08 14:24) [29]
А Вы не заметили, что ответ был в
Раиса ©   (14.07.08 14:11) [26] ?
1.Ошибка возникает при сохранении вордового файла (saveAs).

Но для того, чтобы дойти до SaveAs, нужно сделать
CreateOleObject("Word.Application");
и при этом WinWord появится в Диспетчере задач. Quit почему-то не помогает для завершения процесса.


 
Игорь Шевченко ©   (2008-07-14 14:34) [31]


> Quit почему-то не помогает для завершения процесса.


еще интерфейс бы обнулить...


 
Palladin ©   (2008-07-14 14:38) [32]


> Раиса ©   (14.07.08 14:31) [30]

ах... это ответ был... хем...


> нужно сделать CreateOleObject("Word.Application");

ну да... нужно... а какое это отношение имеет к ошибке сохранения? пусть объект создается, создается документ и прочая мишура, а потом проходит попытка сохранения... но при чем тут тогда DeleteFile?

задача не ясна, что именно делается и что именно нужно сделать? начали с DeleteFile закончили вызовом SaveAs...


 
Раиса ©   (2008-07-14 14:44) [33]

Начнем сначала.
Проверить, открыт или нет вордовый документ. Если да, то выдать сообщение. Если документ есть, но не открыт, то после вопроса удалить его или нет.


 
Kolan ©   (2008-07-14 14:47) [34]

> [33] Раиса ©   (14.07.08 14:44)

Это похоже на задание, а не на вопрос. Что из этого непонятно?


 
Поросенок Винни-Пух ©   (2008-07-14 14:47) [35]

он может быть и не открыт, но при этом и удалить его не получится


 
Поросенок Винни-Пух ©   (2008-07-14 14:50) [36]

Если документ есть, но не открыт, то после вопроса удалить его или нет.

неправильно.
Если есть и не открыт, то снова проверить не открыт ли он сразу после первой проверки на неоткрытость.


 
Kolan ©   (2008-07-14 14:50) [37]

> он может быть и не открыт, но при этом и удалить его не
> получится

Пожалей автора :).


 
Palladin ©   (2008-07-14 14:53) [38]


> Раиса ©   (14.07.08 14:44) [33]

либо это не с самого начала, либо все таки читать [19] второй абзац до полного просветления

задача так и не озвучена, что нужно от файла, просто его удалить или всетаки записать, что то с тем же именем


 
Раиса ©   (2008-07-14 14:57) [39]

Задача:все-таки записать, что-то с тем же именем. Но вордовый файл может быть открыт или нет (программно или вручную).


 
Palladin ©   (2008-07-14 14:58) [40]


> Раиса ©   (14.07.08 14:57) [39]

"ну вот, а то мама мама..."
вот при попытке записи чего то с этим именем и нужно делать анализ результата этой попытки, и не нужно ничего удалять



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

Текущий архив: 2008.08.17;
Скачать: CL | DM;

Наверх




Память: 0.56 MB
Время: 0.024 c
2-1215890925
Mixail2
2008-07-12 23:28
2008.08.17
TTreeNode


1-1196765671
LexXL
2007-12-04 13:54
2008.08.17
подскажите компонент


2-1216011985
dreamse
2008-07-14 09:06
2008.08.17
Подскажите какое свой ство в компоненте TTable или TQuery


15-1214923574
pasha_golub
2008-07-01 18:46
2008.08.17
Отлов MemLeak ов


13-1120722946
Игорь Шевченко
2005-07-07 11:55
2008.08.17
Можно ли в Visual Studio 2005 Express создать сборку .Net 1.1 ?