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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.09.2011, 12:10   #31
hacknet
Форумчанин
 
Регистрация: 11.11.2008
Сообщений: 177
По умолчанию

заметил еще, если написать любые три буквы и путь то серовно, прога открывает!
к примеру "xxx c:\1.txt" прога откроет 1.txt, а надо чтоб регировала только на "exe"! что не так помогите!?
hacknet вне форума Ответить с цитированием
Старый 08.09.2011, 13:18   #32
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

вот немного перебрал предыдущий код
Код:
function MyRemoveDir(sDir: string): Boolean;
var
  iIndex: Integer;
  SearchRec: TSearchRec;
  sFileName: string;
begin
  Result := False;
  if sDir[Length(sDir)] <> '\' then // хм, непорядок. а вдруг нет?
    sDir := sDir + '\';
  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
        ShowMessage('Could NOT delete ' + sFileName);
    end;
    iIndex := FindNext(SearchRec);
  end;

  FindClose(SearchRec);
  // RemoveDir(ExtractFileDir(sDir));
  Result := True;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  sIn, sPath, sCmd: string;
begin
  if Memo1.Lines.Count < 1 then
  begin
    MessageBox(0, 'МЕМО пуст', 'Ошибка', MB_ICONERROR or MB_OK);
    Exit;
  end;

  sIn := Memo1.Lines[0];                      // входная строка
  sCmd := UpperCase(copy(sIn, 1, 4));         // команда
  sPath := copy(sIn, 5, Length(sIn) - 5 + 1); // путь к файлу/папке

 // функция Pos в данном случае не подойдет, т.к. она ищет во всей строке
  if sCmd = 'EXE ' then
  begin
    if FileExists(sPath) then
      ShellExecute(Application.Handle, 'open', PChar(sPath), '', PChar(ExtractFilePath(sPath)), 0);
  end
  else if sCmd = 'DEL ' then
  begin
    if FileExists(sPath) then // а вдруг это файл?
      DeleteFile(sPath)
    else if DirectoryExists(sPath) then
      MyRemoveDir(sPath);

    Memo1.Lines.Delete(0); // удаляем строку
  end;
end;

Последний раз редактировалось ZuBy; 08.09.2011 в 13:20.
ZuBy вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрытые файлы и папки в OpenDialog Veiron Общие вопросы Delphi 6 05.03.2008 09:03
Как удалить файлы. Борис2 Паскаль, Turbo Pascal, PascalABC.NET 3 15.12.2007 16:00
Показывать-не показывать скрытые файлы и папки... Романнн Свободное общение 5 07.11.2007 13:16
два вредных вопроса:про асю и прикриплёные файлы файлы steck Свободное общение 3 17.06.2007 14:53
как удалить анти вирус( касперский 2006)если она не работает и ее не возможно удалить Alar Общие вопросы Delphi 0 29.10.2006 21:36