Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Смена расширения php на txt 
:(
    Опции темы
BeeMaster
Дата 27.12.2008, 21:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 3.4.2008

Репутация: нет
Всего: нет



Народ подскажите пожалуйста код для смены расширения файлов. Суть в том что есть определенный двигатель сайта на php. И мне надо найти определенную фразу в одном из файлов. Но стандартный поиск не ищит текст в файлах с расширением php.
Путь до папки с двигом c:\123

мне просто надо запустить программу и она бы расширение поменяла у файлов с расширением php на txt.


ОЧЕНЬ НАДО

 smile 
PM MAIL   Вверх
THandle
Дата 27.12.2008, 23:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 50
Всего: 372



BeeMaster, 

1) ищешь все файлы с расширением .php
Смотри сслыки в этом посте:
http://forum.vingrad.ru/index.php?showtopi...t&p=1740483

2) RenameFile для каждого найденного .php файла.
PM   Вверх
Akella
Дата 28.12.2008, 01:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 8
Всего: 329



Цитата(BeeMaster @  27.12.2008,  21:44 Найти цитируемый пост)
Но стандартный поиск не ищит текст в файлах с расширением php.

что за стандартный поиск
PM MAIL   Вверх
BeeMaster
Дата 28.12.2008, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 3.4.2008

Репутация: нет
Всего: нет



Код

procedure ListFilesInDirectory(Dir: string; Strings: TStrings);
var
  rSearchRec: TSearchRec;
begin
  if ((Dir = '') or (not Assigned(Strings))) then
    Exit;
  Dir := IncludeTrailingPathDelimiter(Dir);
  if FindFirst(Dir + '*.php', faAnyFile, rSearchRec) = 0 then
    try
      repeat
        if ((rSearchRec.Name <> '.') and (rSearchRec.Name <> '..')) then
          if (rSearchRec.Attr and faDirectory) <> 0 then
            ListFilesInDirectory(Dir + rSearchRec.Name, Strings)
          else
            Strings.Add(rSearchRec.Name);
      until FindNext(rSearchRec) <> 0;
    finally
      FindClose(rSearchRec);
    end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ListFilesInDirectory('C:\123', Memo1.Lines);
end;

procedure TForm1.Button2Click(Sender: TObject);
 var
  i:integer;
  ii:integer;
  oldName, newName : string;
begin
  i := Memo1.Lines.Count;
  ii:=0;
  while i<ii do
  begin
  oldName := Memo1.Lines.Strings[ii];
  newName := ChangeFileExt(oldName, '.txt');
  RenameFile(oldName, newName);
  ii:=ii+1;
  end;
end


Вот я сделал. Но из-за того что при нахождение файлов не пишится целиком путь до файла у меня переименовывание не срабатывает.  Подскажите как переделать код для того чтобы писался путь до файла???



Akella, системный поиск, который с системой идет в комплекте =)))
PM MAIL   Вверх
THandle
Дата 28.12.2008, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 50
Всего: 372



Код

function ExtractFileNameWithoutExt(const FileName: String): String;
var
  DPos: Integer;
begin
  Result := ExtractFileName(FileName);
  DPos := LastDelimiter('.', Result);
  if DPos > 0 then
    Result := Copy(Result, 1, DPos - 1);
end;

procedure RenameFilesInDirectory(Dir: string; const Ext1, Ext2: String);
var
  rSearchRec: TSearchRec;
begin
  if Dir = '' then
    Exit;
  Dir := IncludeTrailingPathDelimiter(Dir);
  if FindFirst(Dir + '*.*', faAnyFile, rSearchRec) = 0 then
    repeat
      if ((rSearchRec.Name <> '.') and (rSearchRec.Name <> '..')) then
        if (rSearchRec.Attr and faDirectory) <> 0 then
          RenameFilesInDirectory(Dir + rSearchRec.Name, Ext1, Ext2)
        else
          if CompareText(ExtractFileExt(rSearchRec.Name), Ext1) = 0 then
            RenameFile(Dir + rSearchRec.Name, Dir + ExtractFileNameWithoutExt(rSearchRec.Name) + Ext2);
    until FindNext(rSearchRec) <> 0;
  FindClose(rSearchRec);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  RenameFilesInDirectory('C:\', '.php', '.txt');
end;


Должна переименовать все php файлы на диске C в txt.

Это сообщение отредактировал(а) THandle - 29.12.2008, 09:03
PM   Вверх
Akella
Дата 28.12.2008, 23:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 8
Всего: 329



Цитата(THandle @  28.12.2008,  20:11 Найти цитируемый пост)
function ExtractFileNameWithoutExt(const FileName: String): String;
var
  S: String;
begin
  S := ExtractFileName(FileName);
  Result := Copy(S, 1, LastDelimiter('.', S) - 1);
end;

а если не будет точки?
PM MAIL   Вверх
THandle
Дата 29.12.2008, 09:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 50
Всего: 372



Akella, значит тогда у файла нет расширения smile Но согласен, некоректная функция, исправил чуток. smile
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0578 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.