Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.12.2007, 10:49   #1
Kashp
Форумчанин
 
Регистрация: 05.08.2007
Сообщений: 225
По умолчанию Непонятное поведение программы на Delphi

Имеется exe-шник и файл *.ini.
В ini-файле прописан путь. При запуске ехе-шника происходит удаление папки (указанной в ini файле) со всеми директориями и файлами.
У меня все отлично работает, а вот на компе товарища не хочет! У обоих Win_XP SP-2. В чем же дело?

Код:
type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
    Function MyRemoveDir(sDir : String) : Boolean;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
Form1.Left:=-500;
end;


//функция удаления папки со всеми файлами и папками
function TForm1.MyRemoveDir(sDir: String): Boolean;
var
 iIndex : Integer;
 SearchRec : TSearchRec;
 sFileName : String;
begin
Result := False;
sDir := sDir + '\*.*';
iIndex := FindFirst(sDir, faAnyFile, SearchRec);
while iIndex = 0 do begin
sFileName := ExtractFileDir(sDir)+'\'+SearchRec.Name;
if SearchRec.Attr = faDirectory then begin
if (SearchRec.Name <> '' ) and
(SearchRec.Name <> '.') and
(SearchRec.Name <> '..') then
MyRemoveDir(sFileName);
end else begin
if SearchRec.Attr <> faArchive then
FileSetAttr(sFileName, faArchive);
if NOT DeleteFile(sFileName) then
Form1.Close;
end;
iIndex := FindNext(SearchRec);
end;
FindClose(SearchRec);
RemoveDir(ExtractFileDir(sDir));
Result := True
end;


procedure TForm1.FormShow(Sender: TObject);
var
 f: TStrings;
 s: string;
begin
 ShowWindow(Handle,SW_HIDE);
 ShowWindow(Application.Handle,SW_HIDE);
 f:=TStringList.Create();
 f.LoadFromFile('dir.ini');
 s:=f.Strings[0];
 if DirectoryExists(s) then
 MyRemoveDir(s); // если папка есть, то удаляем ее
 if not DirectoryExists(s) then //там же создаем пустую папку
 CreateDir(s);
 f.Free;
 Form1.Close;
end;

end.
Вложения
Тип файла: rar project.rar (5.5 Кб, 12 просмотров)
Kashp вне форума Ответить с цитированием
Старый 14.12.2007, 11:45   #2
Gauss
Форумчанин
 
Аватар для Gauss
 
Регистрация: 26.11.2007
Сообщений: 235
По умолчанию

Думаю может путь там другой, поэтому.
Gauss вне форума Ответить с цитированием
Старый 14.12.2007, 12:50   #3
Kashp
Форумчанин
 
Регистрация: 05.08.2007
Сообщений: 225
По умолчанию

Цитата:
Сообщение от Gauss Посмотреть сообщение
Думаю может путь там другой, поэтому.
Нет, с путями все правильно.
Kashp вне форума Ответить с цитированием
Старый 14.12.2007, 13:05   #4
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Антизверь?
Sibedir вне форума Ответить с цитированием
Старый 14.12.2007, 13:13   #5
Kashp
Форумчанин
 
Регистрация: 05.08.2007
Сообщений: 225
По умолчанию

Цитата:
Сообщение от Sibedir Посмотреть сообщение
Антизверь?
хм.. не понял, что ты имеешь в виду?
Kashp вне форума Ответить с цитированием
Старый 14.12.2007, 13:31   #6
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

всмысле - антивирус
Sibedir вне форума Ответить с цитированием
Старый 14.12.2007, 14:42   #7
Kashp
Форумчанин
 
Регистрация: 05.08.2007
Сообщений: 225
По умолчанию

Цитата:
Сообщение от Sibedir Посмотреть сообщение
всмысле - антивирус
ааа, не, отключали его, все равно не работает у него
Kashp вне форума Ответить с цитированием
Старый 14.12.2007, 17:40   #8
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Что-то не верится, что она и у вас-то работает...
Ведь у вас в ней бесконечный рекурсивный вызов вашей функции организован...
mihali4 вне форума Ответить с цитированием
Старый 14.12.2007, 19:45   #9
Kashp
Форумчанин
 
Регистрация: 05.08.2007
Сообщений: 225
По умолчанию

Цитата:
Сообщение от mihali4 Посмотреть сообщение
Что-то не верится, что она и у вас-то работает...
Ведь у вас в ней бесконечный рекурсивный вызов вашей функции организован...
Клянусь, у меня работает!
Ну тогда напишите пожалуйста функцию, которая будет удалять всё из папки (и файлы и папки).
Kashp вне форума Ответить с цитированием
Старый 14.12.2007, 20:36   #10
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от Kashp Посмотреть сообщение
Клянусь, у меня работает!
Ну тогда напишите пожалуйста функцию, которая будет удалять всё из папки (и файлы и папки).
3 варианта:
http://www.programmersclub.ru/files/dfaq.rar
mihali4 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Независимое поведение форм Alter Общие вопросы Delphi 2 25.07.2008 22:12
SetFocus!!!Нужен ответ!Творится,что-то непонятное!!! Alexij Общие вопросы Delphi 4 14.06.2008 14:59
Непонятное поведение алгоритма master_root Общие вопросы Delphi 3 11.06.2008 14:32
Странное поведение ПОИСКПОЗ ZORRO2005 Microsoft Office Excel 5 19.05.2008 14:02