Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.08.17;
Скачать: [xml.tar.bz2];

Вниз

Не возникает ошибка при удалении открытого документа (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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.54 MB
Время: 0.04 c
15-1214594861
stas
2008-06-27 23:27
2008.08.17
Посоветуйте фотоаппарат


15-1214730717
Kostafey
2008-06-29 13:11
2008.08.17
С днем рождения ! 29 июня


9-1173617382
Аццкий_рыцарь
2007-03-11 15:49
2008.08.17
Проблема со столкновением


15-1214901514
tesseract
2008-07-01 12:38
2008.08.17
а где флуд по этому вопросу :


15-1214933900
Sergey Masloff
2008-07-01 21:38
2008.08.17
CodeGear RAD Studio 2007 ставил наверное кто-то?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский