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

Вниз

Проверка наличия файла   Найти похожие ветки 

 
Gaber   (2002-12-15 11:42) [0]

Подскажите пожалуйства, как узнать есть файл на CD-ROM или нет.
Тоесть есть 2 диска, на одном начало на другом продолжений, на одном диске Part1.exe на другом Part2.exe. Нужна проверка, при нажатии на Continue в первой оболочне, выдать сообщение "вставте диск 2", проверить есть ли Part2.exe файл и запустить его.

В Help"e набрел на следующее, но как это использовать не понял:

WinExec (FileName: PChar; CmdShow: Cardinal) : Cardinal;
возвращаемые результаты:
...
...
ERROR_FILE_NOT_FOUND файл не найден


 
Anatoly Podgoretsky   (2002-12-15 11:58) [1]

Это означает, что на обычном диске ты умеешь это делать, а на СД нет, могу тебя успокоить СД ничем не отличается от жесткого диска, делай точно также, да и если проблемы с английским, то тебе надо перевести два слова Файл и Существует - это будет ответ.


 
Gaber   (2002-12-15 12:09) [2]

Анатолий:
Я может неправильно выразился, но я хотел бы вывести сообщение типа "Не тот диск", если всунут диск не с Part2.exe, как это сделать не знаю:

A:=MessageBox(Handle,PChar("Вставте диск № 2"),PChar("Хотим продолжения ?"),MB_ICONINFORMATION+MB_OKCANCEL+MB_DEFBUTTON1);
try
WinExec ("Part2.exe", SW_SHOW);
except
ShowMessage("Не тот диск!");
end;

Так сообщение у меня не выводится, если файла нет!


 
FreeLancer   (2002-12-15 12:12) [3]


> Это означает, что на обычном диске ты умеешь это делать,
> а на СД нет, могу тебя успокоить СД ничем не отличается
> от жесткого диска, делай точно также, да и если проблемы
> с английским, то тебе надо перевести два слова Файл и Существует
> - это будет ответ.

Вот, вот пример идеального ответа. Некоторые здесь думают, что им должны выдать сразу готовое решение. Причем не просто сходной задачи, а именно ЕГО. Эх кинуть бы их во времена "делфи раз", когда ни интернета, ни книг толковых, ничего не было кроме недоразвитого help"а...


 
Anatoly Podgoretsky   (2002-12-15 12:23) [4]

WinExec ("Part2.exe", SW_SHOW);
Не будет генерировать никаких исключений, кроме того эта функция для Win 3.1, в 32 битных ОС ее заменили на ShellExecute, которая тоже не будет возбуждать исключение при ошибке, ошибку ты должен сам обработать, кроме того я тебя послал в сторону функции ФайлСуществует и надеялся, что ты посмотришь в словарике как это переводится, затем в хелпе посмотришь ее параметры и наконец ее воспользуется или ты ждешь, что тебе все выложат на тарелочке с голубой каемочкой, конечно кто нибудь так и поступит и подложит таким образом тебе свинью, неучем помрешь, надо учиться и уметь находить ответы в доступных ресурсах.

Неумение получать информацию из окрвжающей среды не приветствуется.


 
Alex_Sudakov   (2002-12-15 12:25) [5]

Если есть возможность уточнить область поиска, то почему бы этого не сделать...

PS Мне почему-то кажется, что решение лежит где-то в области FileExist и ShellExecute...:)


 
Alex_Sudakov   (2002-12-15 12:29) [6]

2Анатолий - прошу прощения, не увидел последнего дополнения...:)


 
FreeLancer   (2002-12-15 12:33) [7]


> Если есть возможность уточнить область поиска, то почему
> бы этого не сделать...

Да потому, что если он хочет использовать WinExec, то не мешало бы посмотреть что она возвращает и сразу станет все ясно как день...

If the function succeeds, the return value is greater than 31.
If the function fails, the return value is one of the following error values:

Value Meaning
0 The system is out of memory or resources.
ERROR_BAD_FORMAT The .EXE file is invalid (non-Win32 .EXE or error in .EXE image).
ERROR_FILE_NOT_FOUND The specified file was not found.
ERROR_PATH_NOT_FOUND The specified path was not found.


Если здесь нет ответа на его вопрос, то где же он?


 
FreeLancer   (2002-12-15 12:36) [8]

P.S.
Там же написано и о другой важной вещи:
This function is provided for compatibility with earlier versions of Windows.
Короче, используй ShellExecute...+F1


 
Alex_Sudakov   (2002-12-15 12:37) [9]

Ну не у всех же пока достаточно опыта. Кто-то пока его просто не имеет...:)))


 
FreeLancer   (2002-12-15 12:45) [10]


> Alex_Sudakov © (15.12.02 12:37)
> Ну не у всех же пока достаточно опыта. Кто-то пока его просто
> не имеет...:)))


И не "поимеет" если будет ждать готовых решений. ;-/


 
Gaber   (2002-12-15 13:54) [11]

To FreeLancer:

Я очень рад за Вас, что Вы имели счастье, а может нет, работать с Delphi раз. Но если Вы заходите на этот форум и читаете постинги таких юзерей как я, которые не леняться читать и что-то даже знают про возвращаемое значение и запуск, то будте добры не высказывать свое столь не приятное мнение:

>Некоторые здесь думают, что им должны выдать сразу готовое >решение. Причем не просто сходной задачи, а именно ЕГО. Эх >кинуть бы их ...

Некоторые более знающие мастера, даже дают свои ICQ и e-mail, и готовы помочь своим начинающим коллегам.

и еще ...

Value Meaning
0 The system is out of memory or resources.
ERROR_BAD_FORMAT The .EXE file is invalid (non-Win32 .EXE or error in .EXE image).
ERROR_FILE_NOT_FOUND The specified file was not found.
ERROR_PATH_NOT_FOUND The specified path was not found.

Это мне известно, http://lab.hop.ru/delphi/lessons/les4/les4.shtml

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

>возвращаемые результаты:
>...
>...
>ERROR_FILE_NOT_FOUND файл не найден



 
FreeLancer   (2002-12-15 14:08) [12]

Ну, :%^#$& вот:

proc MyProc...bla...bla..
var WEResult: dword;
begin
WResult := WinExec(bla...bla);
if WResult > 31 then
begin
... {Ура, запустилось!}
end else
case WResult of
:ERROR_FILE_NOT_FOUND
begin
...{Файл не найден}
end;
...
end;
end;


 
Anatoly Podgoretsky   (2002-12-15 14:08) [13]

Alex_Sudakov © (15.12.02 12:25)
Так ты его и не мог увидеть, ответ готовили одновременно.

Gaber © (15.12.02 13:54)
Тебе уже достаточно дали информации для решение проблемы, к тому же видно, что ты и сам прикладываешь усилия (по последнему сообщению), так что на правильном пути.
Вот если бы ты был более многословен и привел параметры передаваемые в функцию, вместо приведения ее прототипа, то ты наверняка бы получил указание на конкретную ошибку, а так только гадать, что же ты передаешь
Во втором сообщении ты уже привел это и это одназначно позволяет указать почему, вот просто попробуй ответить на такой вопрос, а где находится этот файл "WinExec ("Part2.exe", ", особенно с точки зрения системы, ответ где угодно, для того что бы это сработало надо указывать полный путь.
Тоже будет и для FileExists = файл не существует.

Но вот теперь у тебя есть достаточно информации, какие функции использовать, как проверить на ошибку, будет ли работать срабатывать блок try except end и прочее.
Если же еще остались вопросы, то задавай их конкретно с достаточным объемом данных для ответа, а то такой флейм и будет расширяться.



 
Gaber   (2002-12-15 14:18) [14]

Всем спасибо, никого не хотел обидеть и отрывать от дел.


 
Anatoly Podgoretsky   (2002-12-15 14:21) [15]

Да мы сейчас отдыхаем, так что не оторвал



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

Форум: "Основная";
Текущий архив: 2002.12.26;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.007 c
7-86198
Dimich1978
2002-10-23 09:35
2002.12.26
Кто нибудь писал прогу для учета компов на предприятии!!!


3-85875
daimon
2002-12-08 18:11
2002.12.26
Тонкии клиент


3-85843
Bishop
2002-12-07 00:37
2002.12.26
Глюк?


14-86166
kingdom
2002-12-06 19:16
2002.12.26
А есть где-нибудь форум по Install Shield Professional ?


1-85940
Essense
2002-12-17 15:44
2002.12.26
Canvas.TextOut





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский