![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Странное поведение программы. Объясните, плз. [D6, WinXP]
Ji © (2005-03-16 00:37:00)Есть программа без интерфейса. При ее работе происходят непонятные вещи. Вот ее код (упрощенный):
type
startparam=record
...
end;
var
Param: StartParam;
tr: TextFile;
begin
AssignFile(tr,'report.txt');
Rewrite(tr);
GetParam(Param);
WriteLn(tr,Param.Error,': ',Param.ErrText);
if Param.Error = 0 then {некотоый код - пусть будет work};
CloseFile(tr);
end;
Поясню. Здесь GetParam обрабатывает командную строку и передает результаты в переменную Param. Если командная строка обработана нормально, все параметры корректны и т.д. - то Param.Error = 0.
Суть проблемы.
1. Если просто запускаю файл (без параметров в командной строке), все отрабатывает нормально (в файл report.txt пишется ошибка, что командная строка не имеет параметров).
2. Если создаю пакетный файл и прописываю в него запуск программы с параметрами - то тоже все ок. В файл report.txt пишется, "ошибка 0 - в командной строке ошибок нет", и выполняется work.
3. Если в проводнике перетаскиваю любой файл (прога должна его обработать) на иконку с программой. Вот тут начинается самое интересное. GetParam отрабатывает, Work тоже отрабатывает, но в файл REPORT.TXT НИЧЕГО НЕ ПИШЕТСЯ и этот файл даже НЕ СОЗДАЕТСЯ!!!
Можете что-нибудь сказать на этот счет?
Anatoly Podgoretsky (2005-03-16 09:32:00) [1]Где исправленый текст?
Ji (2005-03-16 01:19:00) [2]> DrPass © (16.03.05 01:10) [5]
Спасибо...
Я почему запарился - в результате работы программы создается ТРИ файла. Причем два в папке, в которой лежит программа, а третий (как выяснилось) закидывается по непонятным причинам. Я даже и предположить не мог что такое может быть :)
DrPass (2005-03-16 01:10:00) [3]AssignFile(tr, ExtractFilePath(ParamStr(0))+'report.txt');
Ji (2005-03-16 01:02:00) [4]Вот уродство... Сохраняет его в папку C:\Documents and Settings\User
Спасибо за свежие мысли... Сам бы еще долго искал :-)
Кстати, а как сделать, сделать чтобы папка по умолчанию была та, в которой лежит программа?
Ji (2005-03-16 00:56:00) [5]Да ладно вам... Все в одной папке лежит...
Но на всякий случай запустил поиск по всем дискам... Сейчас закончит - отпишу
llirik (2005-03-16 00:46:00) [6]возможно что и создается, только где-нибудь в другом месте ...
нужно проверить, какой какталог для нее является текущим (посмотри параметры CreateProcess)
может он в каталоге той которую перетаскиваешь?
или в c:\Windows\
DrPass (2005-03-16 00:45:00) [7]А ты поищи его в том каталоге, откуда ты файл брал