Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Поиск [D7, XP]


atas-sheriff ©   (2006-12-03 21:38:00) 

Здраствуйте мастера ;). Всё ми знаєм такую игру Counter-Strike там есть карты (в папке maps) и навернека каждий играл з ZBoTaмы которим нужни NAV файлы. И так вопрос такой: мне надо чтоби эта программа находила для каждой карти (*.bsp) недостающий NAV файл:
Пример:
aim_ak-colt.bsp
aim_ak-m4.bsp
aim_awp3.bsp
aim_aztec2003.bsp
aim_aztec_nf.bsp

aim_ak-colt.nav
aim_ak-m4.nav
aim_awp3.nav
aim_aztec2003.nav

Как ви заметили там нету aim_aztec_nf.nav. и так нужно чтоби прога находила таку недостачу. И если можна иходниками.


vidiv   (2006-12-04 18:44:00) [1]

@del list.txt
@for %%I IN (*.txt) DO @IF NOT EXIST "%%~nI.htm" @echo %%~nI.htm >>list.txt
@start list.txt
@cls


atas-sheriff   (2006-12-04 18:29:00) [2]

Ех....) Ладно. Делфи штука хорошая но BAT Rulezzzz.


vidiv   (2006-12-04 18:21:00) [3]

Он тебе нужен, Дельфи?


atas-sheriff   (2006-12-04 18:19:00) [4]

Спасибо vidiv ©! а на Delphi???


vidiv   (2006-12-04 18:16:00) [5]

создаешь list.bat с двумя строчками внутри:

@for %%I IN (*.bsp) DO @IF NOT EXIST "%%~nI.nav" @echo %%~nI.nav
@pause


кидаешь его в папку с картами, запускаешь и наслаждаешься =)


atas-sheriff   (2006-12-04 18:01:00) [6]

Я зделал так:

procedure TForm1.Button1Click(Sender: TObject);
var
 sr1,sr2: TSearchRec;
 fa,i: Integer;
begin
 fa:=faAnyFile;
 with ListBox1 do
 begin
   Items.Clear;
   if FindFirst(Edit1.Text, fa, sr1) = 0 then
   begin
     repeat
       Delete(sr1.Name,pos('.nav',sr1.Name),4);
       Items.Add(sr1.Name);
     until FindNext(sr1) <> 0;
     FindClose(sr1);
   end;
 end;
 begin
 with ListBox2 do
 begin
   Items.Clear;
   if FindFirst(Edit2.Text, fa, sr2) = 0 then
   begin
     repeat
       Delete(sr2.Name,pos('.bsp',sr2.Name),4);
       Items.Add(sr2.Name);
     until FindNext(sr2) <> 0;
     FindClose(sr2);
   end;
 end;
end;
end;


Но не до конца.
> по bsp смотрится есть ли оно в StringList
А как это зделать???


Anatoly Podgoretsky   (2006-12-04 08:57:00) [7]


> atas-sheriff ©   (03.12.06 21:38)  

И в чем проблема?
Два цикла, в первом nav файлы загоняются в сортированый StringList, во по bsp смотрится есть ли оно в StringList


atas-sheriff   (2006-12-03 22:28:00) [8]

Я нашол FindFirst и переправил на:
procedure TForm1.Button1Click(Sender: TObject);
var
 sr: TSearchRec;
 fa: Integer;
begin
 StringGrid1.RowCount := 1;
 fa:=Я так понял что здесь чтота написать надо????

 with StringGrid1 do
 begin
   RowCount := 0;

   if FindFirst(Edit1.Text, fa, sr) = 0 then

   begin
     repeat
       if (sr.Attr and fa) = sr.Attr then
       begin
       RowCount := RowCount + 1;
       Cells[1,RowCount-1] := sr.Name;
       Cells[2,RowCount-1] := IntToStr(sr.Size);
       end;
     until FindNext(sr) <> 0;
     FindClose(sr);
   end;
 end;

end;


Kolan   (2006-12-03 21:44:00) [9]

> знаєм

Что за слово такое?

> Как ви заметили

Грузин что-ли?


> так нужно чтоби прога находила

FindFirst итд.. В справке все есть... Неполучится, ждем конкретных вопросов.


Наверх

Титульная страница Поиск, карта сайта Написать письмо