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

Вниз

Странное поведение программы. Объясните, плз.   Найти похожие ветки 

 
Ji ©   (2005-03-16 00:37) [0]

Есть программа без интерфейса. При ее работе происходят непонятные вещи. Вот ее код (упрощенный):
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 НИЧЕГО НЕ ПИШЕТСЯ и этот файл даже НЕ СОЗДАЕТСЯ!!!
Можете что-нибудь сказать на этот счет?


 
DrPass ©   (2005-03-16 00:45) [1]

А ты поищи его в том каталоге, откуда ты файл брал


 
llirik ©   (2005-03-16 00:46) [2]

возможно что и создается, только где-нибудь в другом месте ...
нужно проверить, какой какталог для нее является текущим (посмотри параметры CreateProcess)

может он в каталоге той которую перетаскиваешь?
или в c:\Windows\


 
Ji ©   (2005-03-16 00:56) [3]

Да ладно вам... Все в одной папке лежит...
Но на всякий случай запустил поиск по всем дискам... Сейчас закончит - отпишу


 
Ji ©   (2005-03-16 01:02) [4]

Вот уродство... Сохраняет его в папку C:\Documents and Settings\User
Спасибо за свежие мысли... Сам бы еще долго искал :-)
Кстати, а как сделать, сделать чтобы папка по умолчанию была та, в которой лежит программа?


 
DrPass ©   (2005-03-16 01:10) [5]

AssignFile(tr, ExtractFilePath(ParamStr(0))+"report.txt");


 
Ji ©   (2005-03-16 01:19) [6]

> DrPass ©   (16.03.05 01:10) [5]
Спасибо...

Я почему запарился - в результате работы программы создается ТРИ файла. Причем два в папке, в которой лежит программа, а третий (как выяснилось) закидывается по непонятным причинам. Я даже и предположить не мог что такое может быть :)


 
Anatoly Podgoretsky ©   (2005-03-16 09:32) [7]

Где исправленый текст?



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

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

Наверх




Память: 0.48 MB
Время: 0.062 c
14-1110344649
Некто
2005-03-09 08:04
2005.03.27
Хокку


9-1105152143
fate
2005-01-08 05:42
2005.03.27
Оцените пожалуйста


14-1110011521
boriskb
2005-03-05 11:32
2005.03.27
Читайте лицензионное соглашение. :)


1-1110965012
Zhekson
2005-03-16 12:23
2005.03.27
почему не ставится стиль fsBold?


6-1106305776
Yr2
2005-01-21 14:09
2005.03.27
Протокол работы PC с мобильным телефоном