Dosyada Replace

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Dosyada Replace

Mesaj gönderen naile »

Bir klasördeki dosyaları açıp replace işlemi yapmam gerekiyor. Dosyaları tek tek açıp stringlist veya memoya alarak yapmaya çalıştım ama biraz uzun iş gibi geldi.. Direk yapabileceğim bir yol varmı veya daha önce böyle birşey yapmış olan?
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

Ansiraplace ile yapılabiliyormuş :)

Kod: Tümünü seç

memo1.Lines.Text := AnsiReplace(memo1.Lines.Text,'Eski_deger','Yeni_deger');
Salih
Üye
Mesajlar: 250
Kayıt: 11 Mar 2004 05:36

Mesaj gönderen Salih »

Bu işlem bana da lazım acilen... Bir klasördeki tüm dosyalar içinde verdiğim bir text"i arayıp benim vereceğim bir başka text ile değiştirmek istiyorum. Eski zamanlarda Norton amcanın bir ff.exe si vardı bu işi yapan ama bir türlü bulamıyorum.
Sevgi, Saygı.....
Kullanıcı avatarı
Asri
Kıdemli Üye
Mesajlar: 767
Kayıt: 16 Eyl 2003 09:54
Konum: istanbul

Mesaj gönderen Asri »

istediğiniz türden bir programı ben yazmıştım. Program 625 satırdan ve 3 tane tab menuden oluştuğu için burdan yayınlayamıyorum. Kaynak kodları ile birlikte almak isterseniz mail atmanız yeterli. programım için yazmış olduğum yardım menusunu aşağıdadır. Program txt ve html lerde byte düzeyinde arama ve değiştirme yaptığı için .exe ve .dll lerde de arama ve değiştirme yapılabilir. Ancak unutmamak gerekirki .exe ve .dll lerde bulunan kelimeden daha uzun bir kelime yazılmamalıdır.

iyi çalışmalar.
-----------------------------------------o------------------------------------------
TEXT TOOLS YARDIM


******** DOSYA SEÇ?M? **************
Bu bölümdeki dizin seçme ve işlem yapılacak dosyaları seçme işlemleri diğer bölümlerdede kullanılıyor.

Buradaki işlemler ile HTML içindeki ilk bölüm ve son bölümleri kesip aynı isimde uzantısı txt olan
bir dosya olarak kaydediyoruz.

Sırası ile şu işlemleri yapınız.

1- Filtre den dosya türünü seçiniz. Seçenek yok ise kendiniz *.amd formatında yazabilirsiniz.
2- "Çalışılacak dizini seçiniz" bölümünden Önce sürücü yü C: seçilidir.
3- Sürücü seçtiğiniz de aşağıdaki listede dizin isimleri gelecektir. Değişiklik yapacağınız dosyaların
bulunduğu dizini çift tıklayınız. Aynı anda "Arama dizini" kutusunda seçtiğiniz dizin
tam yolu ile birlikte görünecektir.
4- Alt dizinleri de işleme dahil edecekseniz "Alt dizinleri de ara" yı tıklayarak atif hale getirmeniz gerekiyor.
5- Ara butonuna basınız.
6- Dosyalar sol tarafdaki kutuda listelenecektir.
7- Listelenen bütün dosyalarda işlem yapacaksaniz. "Tümünü seç" butonunu tıklayınız.
Bütün dosyaları seçmekten vazgeçtiyseniz "Tümünü seç" butonunu tekrar tıklayınız.
8- Belirli dosyalarda işlem yapacaksanız. Her bir dosyanın başındaki kutuyu işaretlemeniz yeterli olucaktır.
9- O an işlem yapılan dosyayı "işlem yapılan dosya" kutusunda göreceksiniz.

******** BUL & DEĞİŞTİR **************
Bu bölümde alt dizinler dahil bütün dosyalarda bul değiştir yapılabilir.
Html ve txt içerikli dosyalarda temizlik yapabilirsiniz.

Bul değiştir özelliğini kullanmak için sırası ile şu işlemleri yapınız.
Öncelikle DOSYA SEÇ?M? bölümündeki 1 den 8 dahil olmak üzere işlemleri yapınız.

1- "Bunu bul" kutusu bir den çok kelime/cümle desteği sağlamaktadır
bu kutuya yazacağınız alt alta kelimeler/cümleler hepsi birden işleme dahil edilecektir.
2- "Bununla değiştir" kutusuna yazacağınız kelime/cümle ler "Bunu bul" kutusundaki karşılık
gelen kelime ile değiştirilir. 1. satırdaki kelime 1. satırdak ile 2. 2. ile gibi.
3- Üstteki kutuya kelime/cümle ler yadıktan sonra alttaki kutuya birşey yazmazsanız, bulunacak bütün
kelimeler silinecektir.
4- Her iki kutuyu doldurduktan sonra "Bul" butonunu tıklarsanız sağdaki listede
hangi kelime, hangi dosyada kaç defa bulundu gibi istatistikleri görebilirsiniz.
5- "Değiştir" butonunu tıklarsanız "Bunu bul" listesinde bulunan kelime/cümle ler bulunarak,
Bununla değiştir listesindeki karşılık gelen kelimeler ile değiştirilecektir.

** Bul de?i?tir i?lemleri byte düzeyinde yap?lmaktad?r. Bu yüzden
uzun sürmektedir.



Örnekler :
********** Örnek 1 **********
BUNU BUL
images\
BUNUNLA DEĞİŞTİR
resimler\

Değiştir i tıkladığınızda images\ leri bulup resimler\ olarak değiştirir.
********** Örnek 2 **********
BUNU BUL
images\
egitim\
BUNUNLA DEĞİŞTİR
resimler\
Dersler\

Değiştir i tıkladığınızda images\ leri bulup resimler\ olarak değiştirir.
eğitim\ leri bulup Dersler\ olarak değiştirir.
********** Örnek 3 **********
BUNU BUL
images\
egitim\
BUNUNLA DEĞİŞTİR
resimler\

Değiştir i tıkladığınızda images\ leri bulup resimler\ olarak değiştirir.
eğitim\ leri bulup siler.
********** Örnek 4 **********
BUNU BUL
images\
egitim\
BUNUNLA DEĞİŞTİR

Değiştir i tıkladığınızda images\ leri bulup siler.
eğitim\ leri bulup siler.
*****************************
DOSYA İŞLEMLERİ TEXT VEYA HTML

Bu işlemler ile, bir txt veya html dosyasında,
- Boş satırlar silinebilir
- Bütün boşluklar silinebilir
- Silinecek bir satırda belirleyeceğiniz bir kelime/cümle eğer
-satır başlında ise
-satır sonunda ise
-Satır içinde ise o satırı siler.

Bu özelliğini kullanmak için sırası ile şu işlemleri yapınız.
Öncelikle TEXT TOOLS bölümündeki 1 den 8 dahil olmak üzere işlemleri yapınız.

1- "Boş satırları sil" i işaretleyip "İşleme başla" butonunu tıklarsanız
seçtiğiniz dosyalardaki bütün boş satırlar silinir.
2- "Bütün boşlukları sil" i işaretleyip "İşleme başla" butonunu tıklarsanız
seçtiğiniz dosyalardaki bütün boşlukları siler.
3- "Seçimli satır sil" işaretleyip yanındaki kutuya kelime/cümle yazın.
Yanındaki kutudan işlem türünü seçin.
İle başlar : Yazdığınız kelime/cümle satırın başında varsa.
İle biter : Yazdığınız kelime/cümle satırın sonunda varsa.
İçerir : Yazdığınız kelime/cümle satırın içinde geçiyorsa.
4- "Tablar? sil" i işaretleyip "İşleme başla" butonunu tıklarsanız
seçtiğiniz dosyalardaki bütün Tab lar? siler.

Bundan sonrası size kalmış. Saksıyı çalıştırın ve daha değişik sonuçlara varın.
Yazılım ile ilgili hataları lütfen asri_2121@hotmail.com adresine rapor ediniz.
İyi çalışmalar dilerim.

Asri
Öğrenmek ve öğretmek, akıntıya karşı yüzmek gibidir ilerleyemediğiniz taktirde gerilersiniz.
Kullanıcı avatarı
Asri
Kıdemli Üye
Mesajlar: 767
Kayıt: 16 Eyl 2003 09:54
Konum: istanbul

Mesaj gönderen Asri »

Belki elinde kod varsa buraya yaz diyenler olabilir. Karışta olsa aşağıda dfm dosyası ile birlikte veriyorum.

Kod: Tümünü seç

unit uMain;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Mask, FileCtrl, ComCtrls, ExtCtrls,
  CheckLst, inifiles,ActnList, ActnMan;

type
  Tform1 = class(TForm)
    OpenDialog1: TOpenDialog;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    Label1: TLabel;
    Label2: TLabel;
    Label5: TLabel;
    lblnumberfound: TLabel;
    Label3: TLabel;
    Label8: TLabel;
    edit1: TEdit;
    Button1: TButton;
    islemdosya: TEdit;
    CheckBox1: TCheckBox;
    dl: TDirectoryListBox;
    edit2: TComboBox;
    fls: TCheckListBox;
    surucu: TDriveComboBox;
    tumsec: TCheckBox;
    TabSheet2: TTabSheet;
    Label9: TLabel;
    Label10: TLabel;
    Label7: TLabel;
    htmlcev: TButton;
    txtislem: TRadioGroup;
    Button3: TButton;
    secimli: TEdit;
    nesecili: TComboBox;
    Button4: TButton;
    bulunanls: TMemo;
    mara: TMemo;
    mdegis: TMemo;
    StaticText1: TStaticText;
    TabSheet4: TTabSheet;
    Memo2: TMemo;
    Button2: TButton;
    Button5: TButton;
    Button6: TButton;
    Label4: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure flDblClick(Sender: TObject);
    procedure edit1DblClick(Sender: TObject);
    procedure dlDblClick(Sender: TObject);
    procedure dlChange(Sender: TObject);
    procedure htmlcevClick(Sender: TObject);
    procedure baraExit(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure ElGraphicButton1Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure tumsecClick(Sender: TObject);
    procedure ElGraphicButton2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure flsMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure dlMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure Button2Click(Sender: TObject);
  private
    procedure FileSearch(const PathName, FileName : string; const InDir : boolean);
    procedure bossatirsil;
    procedure isimdegistir(eskidosya:string;yenidosya:string);
  public
    { Public declarations }
  end;

var
 form1: Tform1;
 ftxt,feski,fyeni:text;
 son1:integer;
 INI:Tinifile;
 kb,alan,bdegis,k,gec,gec1,gec2,gec3,gec4,sad:string;
 f:file;
 s,sy,se:string;
 i1,i2,i3,i4,j,hz,hd,sonsay,say,ic,i,il,y,z:longint;
 secimlistr,ss,sse,hict,huz,huz1:string;
 satir,hic:integer;
 icindevar,bultikli,textislem,bos,yazma,yaz,yaz2:boolean;
 durdur,txt2true,baslikvar,baslikacc,secilidosyavar:boolean;
 kacbul:longint;
 inidosya:string;

implementation
{$R *.DFM}
uses uFileInfo;


procedure Tform1.FileSearch(const PathName, FileName : string; const InDir : boolean);
var Rec  : TSearchRec;
    Path : string;
begin
Path := IncludeTrailingBackslash(PathName);
if FindFirst(Path + FileName, faAnyFile - faDirectory, Rec) = 0 then
 try
   repeat
     application.ProcessMessages;
     if durdur then exit;
     fls.Items.Add(Path + Rec.Name);
   until FindNext(Rec) <> 0;
 finally
   FindClose(Rec);
 end;

If not InDir then Exit;

if FindFirst(Path + '*.*', faDirectory, Rec) = 0 then
 try
   repeat
   application.ProcessMessages;
   if durdur then exit;
   if (Rec.Attr in [faDirectory]) and (Rec.Name<>'.') and (Rec.Name<>'..') then
     FileSearch(Path + Rec.Name, FileName, True);
   until FindNext(Rec) <> 0;
 finally
   FindClose(Rec);
 end;
end; //procedure FileSearch

procedure Tform1.Button1Click(Sender: TObject);
begin
  durdur:=false;
  tumsec.Checked:=false;
  fls.Clear;
  lblNumberFound.caption:='';
  lblNumberFound.caption:=Inttostr(fls.Items.Count);
  FileSearch(Edit1.Text, Edit2.Text, CheckBox1.State in [cbChecked]);
  lblNumberFound.caption:=Inttostr(fls.Items.Count);
end;

procedure Tform1.flDblClick(Sender: TObject);
var SelectedFile : string;
    Rec          : TSearchRec;
    frInfo       : TfrFileInfo;
begin
end;

procedure secilidosyavarmi;
begin
with form1 do begin
 hz:=fls.Items.Count;
 secilidosyavar:=false;
 for hd:=0 to hz-1 do begin
   if fls.Checked[hd] then secilidosyavar:=true;
 end;
end;
end;



procedure satirsil;
label devam;

begin
   for hic:=1 to length(s) do begin
   
     gec:=s[hic];
     if gec<>' ' then begin
                        if gec<>chr(13) then begin
                                               writeln(fyeni,s);
                                               goto devam;
                                             end;
                      end;
   end;
  devam:
end;

procedure satirsilicerir(gecsat:string);
var
hi:longint;
hoku,hokud:string;
begin
with form1 do begin
  icindevar:=false;
  hi:=0;
  if pos(gecsat,s)>0 then begin icindevar:=true;exit;end;

end;
end;

procedure tabsil;
var
hi:longint;
hoku,hokud:string;
begin
with form1 do begin
  icindevar:=false;
  while Pos(chr(9), S) > 0 do delete(s,Pos(chr(9),s),1);

end;
end;

procedure bosluksil;
var
hi:longint;
hoku,hokud:string;
begin
with form1 do begin
  icindevar:=false;
  while Pos(' ', S) > 0 do delete(s,Pos(' ',s),1);

end;
end;

procedure satirsililebaslar(gecsat:string);
var
hokud:string;
begin
with form1 do begin
  icindevar:=false;
  hokud:=copy(s,1,length(gecsat));
  if gecsat=hokud then begin icindevar:=true;exit;end;
end;
end;

procedure satirsililebiter(gecsat:string);
var
hokud:string;
begin
with form1 do begin
  icindevar:=false;
  hokud:=copy(s,length(s)-length(gecsat)+1,length(gecsat));
  if gecsat=hokud then begin icindevar:=true;exit;end;
end;
end;

procedure tform1.bossatirsil;
var
hf:file of byte;
hz,hx,hd,hh,hw,hi,hi1:integer;
hs,hk:byte;
adiismi,hoku:string;
hc:char;
label son,devam,bitir;

begin
with form1 do begin
 yaz:=false; gec:='';
 assignfile(feski,sad);
 son1:=pos('.',sad);gec:=copy(sad,1,son1-1);
 gec:=gec+'yeni.txt';
 adiismi:=gec;
 Assignfile(fyeni,gec);
 reset(feski);
 rewrite(fyeni);
 satir:=0;

 while not Eof(Feski) do begin
   application.ProcessMessages;
   if durdur then
   begin
      closefile(fyeni);
      DeleteFile(gec);
      exit;
   end;
   inc(satir);
   Readln(feski,s);
   label4.Caption:=s;
   case txtislem.ItemIndex of
              0:satirsil;
              1:begin
                 bosluksil;
                 writeln(fyeni,s);
              end;
              2:begin
                   case nesecili.ItemIndex of
                       0:begin
                            satirsililebaslar(secimli.Text);
                            if not icindevar then writeln(fyeni,s);
                         end;
                       1:begin
                            satirsililebiter(secimli.Text);
                            if not icindevar then writeln(fyeni,s);
                         end;
                       2:begin
                           satirsilicerir(secimli.Text);
                           if not icindevar then writeln(fyeni,s);
                         end;
                     end;
                end;
              3:begin
                 tabsil;
                 writeln(fyeni,s);
              end;

    end;
 end;

 son:
 closefile(feski);
 closefile(fyeni);
end;
 isimdegistir(adiismi,sad);
end;


procedure bulbakalim;
var
kayf,hf:file of byte;
hz,hx,hd,hh,hw,hi1:integer;
kayb,hfb,hs,hk:byte;
hoku:string;
hc:char;
hic:integer;
hi,buldu,ilk,encok:longint;
k,s,ss,sse,hict,huz,huz1:string;
bulundu:boolean;
label son,devam,bitir;

begin
with form1 do begin
 hz:=fls.Items.Count;
// hz:=fl.Items.Count;
 hi:=0;

 for hd:=0 to hz-1 do begin
   application.ProcessMessages;
   if durdur then exit;
   if fls.Checked[hd] then sad:=fls.Items.Strings[hd]
                      else goto devam;
   //sad:=fl.Items.Strings[hd];
   islemdosya.Text:=sad;
   islemdosya.Refresh;

   if textislem then begin
                  case txtislem.ItemIndex of
                               0,1,2,3:bossatirsil;

                  end;
                  end
                else begin


                     end;

   devam:
  end;

end;
end;



procedure Tform1.edit1DblClick(Sender: TObject);
begin
edit1.Text:=dl.Directory;
end;

procedure Tform1.dlDblClick(Sender: TObject);
begin
edit1.Text:=dl.Directory;
end;

procedure Tform1.dlChange(Sender: TObject);
begin
edit1.Text:=dl.Directory;
end;

procedure tform1.isimdegistir(eskidosya:string;yenidosya:string);
begin
   if FileExists(yenidosya) then begin
      DeleteFile(yenidosya);
   end;
   AssignFile(f,eskidosya);
   rename(f,yenidosya);
end;


procedure htmldegistir;
var
htmp,hf:file of byte;
hz,hx,hd,hh,hw,hi,hi1:integer;
hs,hk:byte;
hokud,hoku:string;
hc:char;
hic:integer;
label son,devam,tekrar,bitir,atla;
begin

yaz:=false;
with form1 do begin
 hz:=fls.Items.Count;
 for hd:=0 to hz-1 do begin
   application.ProcessMessages;
   if durdur then exit;
   if fls.Checked[hd] then ss:=fls.Items.Strings[hd]
                      else goto atla;
   sse:=ss;
   devam:

   AssignFile(hf,sse);
   reset(hf);
   if not bultikli then begin
                          AssignFile(htmp,'temp.txt');
                          rewrite(htmp);
                        end;
   hi:=0;
   kacbul:=0;

  while hi<=filesize(hf)-1 do begin
   application.ProcessMessages;
   if durdur then
   begin
   closefile(htmp);
   deletefile('temp.txt');
   exit;
   end;

//   for hi:=1 to filesize(hf)-1 do begin
      seek(hf,hi);
      read(hf,hk);
      label4.Caption:=inttostr(hi)+' byte tarandi.';
      label4.Refresh;
      if copy(s,1,1)=chr(hk) then begin
           if hi+length(s)>filesize(hf)-1 then goto son;
           hoku:='';hokud:='';
           for hw:=1 to length(s)-1 do begin
               hx:=hi+hw;
               seek(hf,hx);
               read(hf,hk);
               hoku:=hoku+chr(hk);
           end;
           hokud:=copy(s,1,1)+hoku;
          // showmessage(ss+' '+k+' '+hoku);
           if hokud=s then begin
               k:=bdegis;
               inc(kacbul);
               yaz:=true;
               for hw:=1 to length(k) do begin
//                   seek(hf,(hi-1)+hw);
                   hc:=k[hw];hs:=ord(hc);
                      if not bultikli then write(htmp,hs);
               end;
               hi:=hi+length(hokud);
               goto tekrar;
           end
           else begin

               for hw:=1 to length(hokud) do begin
                   hc:=hokud[hw];hs:=ord(hc);
                      if not bultikli then write(htmp,hs);
               end;
               hi:=hi+length(hokud)-1;
           end;
      end
      else    if not bultikli then write(htmp,hk);
   inc(hi);
   tekrar:
   end;
   son:
   closefile(hf);
   if not bultikli then begin
                           closefile(htmp);
                           isimdegistir('temp.txt',sse);
                        end;
   bitir:
   bulunanls.Lines.Add(s+'  '+inttostr(kacbul)+' Adet '+ sse);
   atla:
  end;
end;
end;



procedure Tform1.htmlcevClick(Sender: TObject);
begin
  durdur:=false;
  secilidosyavarmi;
  if not secilidosyavar then begin
         showmessage('İşlem yapılacak dosya seçilmemiş');
         exit;
  end;
  bulunanls.Clear;
  for hic:=0 to mara.Lines.Count-1  do begin
      if durdur then exit;
      s:=mara.Lines.Strings[hic];
      bdegis:=mdegis.Lines.Strings[hic];
      htmldegistir;
  end;
   if yaz then showmessage('Dosya içeriği değiştirildi')
          else showmessage('Değiştirilecek kayıt bulunamadı');
end;

procedure Tform1.baraExit(Sender: TObject);
begin
//bdegis.MaxLength:=length(bara.Text);
end;


procedure Tform1.Button3Click(Sender: TObject);
begin
  durdur:=false;
  secilidosyavarmi;
  if not secilidosyavar then begin
         showmessage('İşlem yapılacak dosya seçilmemiş');
         exit;
  end;
    textislem:=true;
    case  txtislem.ItemIndex of
        0:begin
            bulbakalim;
            if not durdur then showmessage('Boş satır silme işlemi tamamlandı')
               else showmessage('Boş satır silme işlemi iptal edildi')
          end;
        1:begin
            bulbakalim;
            if not durdur then showmessage('Bosluk silme işlemi tamamlandı')
               else showmessage('Bosluk silme işlemi iptal edildi')
          end;
        2:begin
            bulbakalim;
            if not durdur then showmessage('Seçimli satır silme işlemi tamamlandı')
               else showmessage('Seçimli satır silme işlemi iptal edildi')
          end;
        3:begin
            bulbakalim;
            if not durdur then showmessage('Tab silme işlemi tamamlandı')
               else showmessage('Tab silme işlemi iptal edildi')
          end;


    end;
    textislem:=false;
end;

procedure Tform1.ElGraphicButton1Click(Sender: TObject);
begin
  form1.Close;
end;

procedure Tform1.Button4Click(Sender: TObject);
begin
  durdur:=false;
  secilidosyavarmi;
  if not secilidosyavar then begin
         showmessage('İşlem yapılacak dosya seçilmemiş');
         exit;
  end;
  bulunanls.Clear;
  bultikli:=true;
  for hic:=0 to mara.Lines.Count-1  do begin
      s:=mara.Lines.Strings[hic];
 //  s:=bara.Text;
      htmldegistir;
  end;
  if yaz then showmessage('İçeriği değişecek dosyalar bulundu.')
         else showmessage('Aranan kayıt bulunamadı');
      bultikli:=false;
end;

procedure Tform1.tumsecClick(Sender: TObject);
var
hz,hd:longint;
begin
 hz:=fls.Items.Count;
 if tumsec.Checked then for hd:=0 to hz-1 do begin
                           fls.Checked[hd]:=true;
                        end
                   else  for hd:=0 to hz-1 do begin
                           fls.Checked[hd]:=false;
                        end;
 end;

procedure Tform1.ElGraphicButton2Click(Sender: TObject);
begin
  form1.WindowState:=wsminimized;
end;

function prgdizini: string;
begin
  Result := ExtractFilePath(Application.ExeName);
  if Result[Length(Result)] <> '\' then
   Result := Result + '\';
end;

procedure Tform1.FormCreate(Sender: TObject);
begin
  opendialog1.InitialDir:=prgdizini;

  edit2.text:='*.txt';
  edit1.Text:=prgdizini;
  dl.Directory:=edit1.Text;

end;



procedure Tform1.flsMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: longint);
var
  p:TPoint;
begin
  p.x:=x;
  p.y:=y;
  if fls.ItemAtPos(P,True)<0 then begin end
               else fls.Hint:=fls.Items[fls.ItemAtPos(P,True)];
  Application.ActivateHint(P);
end;

procedure Tform1.dlMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
var
  p:TPoint;
begin
  p.x:=x;
  p.y:=y;
  if dl.ItemAtPos(P,True)<0 then begin end
               else dl.Hint:=dl.Items[dl.ItemAtPos(P,True)];
  Application.ActivateHint(P);
end;

procedure Tform1.Button2Click(Sender: TObject);
begin
  durdur:=true;
end;

end.


DFM dosyasının içeriği

Kod: Tümünü seç

object form1: Tform1
  Left = 218
  Top = 146
  BorderStyle = bsSingle
  Caption = 'Text Tools V.1.0 Coded by Asri'
  ClientHeight = 434
  ClientWidth = 759
  Color = clCream
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'MS Sans Serif'
  Font.Style = []
  OldCreateOrder = False
  ShowHint = True
  OnCreate = FormCreate
  PixelsPerInch = 96
  TextHeight = 13
  object PageControl1: TPageControl
    Left = 3
    Top = 9
    Width = 753
    Height = 417
    ActivePage = TabSheet1
    TabOrder = 0
    object TabSheet1: TTabSheet
      Caption = 'Dosya &Se'#231
      object Label1: TLabel
        Left = 8
        Top = 8
        Width = 56
        Height = 13
        Caption = 'Arama dizini'
      end
      object Label2: TLabel
        Left = 560
        Top = 8
        Width = 22
        Height = 13
        Caption = 'Filtre'
      end
      object Label5: TLabel
        Left = 8
        Top = 48
        Width = 99
        Height = 13
        Caption = #304#351'lem yap'#305'lan dosya'
      end
      object lblnumberfound: TLabel
        Left = 135
        Top = 101
        Width = 6
        Height = 13
        Caption = '0'
      end
      object Label3: TLabel
        Left = 175
        Top = 101
        Width = 71
        Height = 13
        Caption = 'Dosya bulundu'
      end
      object Label8: TLabel
        Left = 489
        Top = 101
        Width = 118
        Height = 13
        Caption = #199'al'#305#351#305'lacak dizini se'#231'iniz'
      end
      object edit1: TEdit
        Left = 8
        Top = 24
        Width = 545
        Height = 21
        TabOrder = 0
        Text = 'C:\acdarsivi\cdyazilim\aser\html2cutter'
        OnDblClick = edit1DblClick
      end
      object Button1: TButton
        Left = 489
        Top = 62
        Width = 136
        Height = 24
        Caption = '&Ara'
        TabOrder = 1
        OnClick = Button1Click
      end
      object islemdosya: TEdit
        Left = 8
        Top = 64
        Width = 473
        Height = 19
        Color = clCream
        Ctl3D = False
        ParentCtl3D = False
        TabOrder = 2
      end
      object CheckBox1: TCheckBox
        Left = 8
        Top = 100
        Width = 113
        Height = 17
        Caption = '&Alt dizinleride ara'
        TabOrder = 3
      end
      object dl: TDirectoryListBox
        Left = 488
        Top = 144
        Width = 225
        Height = 217
        ItemHeight = 16
        TabOrder = 4
        OnChange = dlChange
        OnMouseMove = dlMouseMove
      end
      object edit2: TComboBox
        Left = 560
        Top = 24
        Width = 65
        Height = 21
        ItemHeight = 13
        ItemIndex = 0
        TabOrder = 5
        Text = '*.txt'
        Items.Strings = (
          '*.txt'
          '*.prn'
          '*.log'
          '*.ini'
          '*.doc'
          '*.xls'
          '*.htm'
          '*.html'
          '*.asp'
          '*.php'
          '*.exe'
          '*.dat'
          '*.*')
      end
      object fls: TCheckListBox
        Left = 8
        Top = 120
        Width = 473
        Height = 241
        ItemHeight = 13
        Sorted = True
        TabOrder = 6
        OnDblClick = flDblClick
        OnMouseMove = flsMouseMove
      end
      object surucu: TDriveComboBox
        Left = 488
        Top = 120
        Width = 225
        Height = 19
        DirList = dl
        TabOrder = 7
      end
      object tumsec: TCheckBox
        Left = 8
        Top = 368
        Width = 97
        Height = 17
        Caption = 'T'#252'm'#252'n'#252' se'#231
        TabOrder = 8
        OnClick = tumsecClick
      end
      object Button5: TButton
        Left = 633
        Top = 62
        Width = 80
        Height = 24
        Caption = 'Du&rdur'
        TabOrder = 9
        OnClick = Button2Click
      end
    end
    object TabSheet2: TTabSheet
      Caption = '&Bul&&De'#287'i'#351'tir'
      ImageIndex = 1
      object Label9: TLabel
        Left = 16
        Top = 9
        Width = 42
        Height = 13
        Caption = 'Bunu bul'
      end
      object Label10: TLabel
        Left = 16
        Top = 102
        Width = 76
        Height = 13
        Caption = 'Bununla de'#287'i'#351'tir'
      end
      object Label7: TLabel
        Left = 392
        Top = 18
        Width = 120
        Height = 13
        Caption = 'Bulunan dosyalar'#305'n listesi'
      end
      object Label4: TLabel
        Left = 16
        Top = 240
        Width = 3
        Height = 13
      end
      object htmlcev: TButton
        Left = 16
        Top = 187
        Width = 75
        Height = 25
        Caption = '&De'#287'i'#351'tir'
        TabOrder = 0
        OnClick = htmlcevClick
      end
      object txtislem: TRadioGroup
        Left = 16
        Top = 259
        Width = 353
        Height = 88
        Caption = 'Dosya '#304#351'lemleri  Text veya HTML'
        ItemIndex = 1
        Items.Strings = (
          'Bo'#351' sat'#305'rlar'#305' sil'
          'B'#252't'#252'n bo'#351'luklar'#305' sil'
          'Se'#231'imli sat'#305'r sil'
          'Tablar? sil')
        TabOrder = 1
      end
      object Button3: TButton
        Left = 16
        Top = 362
        Width = 75
        Height = 25
        Caption = #304#351'leme &Ba'#351'la'
        TabOrder = 2
        OnClick = Button3Click
      end
      object secimli: TEdit
        Left = 121
        Top = 307
        Width = 137
        Height = 21
        TabOrder = 3
        OnExit = baraExit
      end
      object nesecili: TComboBox
        Left = 262
        Top = 307
        Width = 93
        Height = 21
        ItemHeight = 13
        ItemIndex = 0
        TabOrder = 4
        Text = #304'le ba'#351'lar'
        Items.Strings = (
          #304'le ba'#351'lar'
          #304'le biter'
          #304#231'erir')
      end
      object Button4: TButton
        Left = 96
        Top = 187
        Width = 75
        Height = 25
        Caption = '&Bul'
        TabOrder = 5
        OnClick = Button4Click
      end
      object bulunanls: TMemo
        Left = 392
        Top = 34
        Width = 345
        Height = 329
        ScrollBars = ssBoth
        TabOrder = 6
      end
      object mara: TMemo
        Left = 16
        Top = 25
        Width = 185
        Height = 68
        ScrollBars = ssBoth
        TabOrder = 7
      end
      object mdegis: TMemo
        Left = 16
        Top = 117
        Width = 185
        Height = 65
        ScrollBars = ssBoth
        TabOrder = 8
      end
      object StaticText1: TStaticText
        Left = 208
        Top = 25
        Width = 177
        Height = 105
        AutoSize = False
        Caption = 
          '"Bunu bul" kutusuna yazaca'#287#305'n'#305'z her arama kelimesi/cumlesi i'#231'in,' +
          ' a'#351'a'#287#305'daki "Bununla de'#287'i'#351'tir" kutusunda da kar'#351#305'l'#305#287#305'n'#305'n olmas'#305' g' +
          'erekiyor. E'#287'er kar'#351#305'l'#305#287#305' yoksa o kelime/c'#252'mle silinecektir. Kar'#351 +
          #305'l'#305#287#305' varsa o kelimeyle de'#287'i'#351'tirilecektir'
        TabOrder = 9
      end
      object Button2: TButton
        Left = 176
        Top = 187
        Width = 75
        Height = 25
        Caption = 'Du&rdur'
        TabOrder = 10
        OnClick = Button2Click
      end
      object Button6: TButton
        Left = 99
        Top = 362
        Width = 75
        Height = 25
        Caption = 'Du&rdur'
        TabOrder = 11
        OnClick = Button2Click
      end
    end
    object TabSheet4: TTabSheet
      Caption = '&Yard'#305'm'
      ImageIndex = 3
      object Memo2: TMemo
        Left = 8
        Top = 8
        Width = 721
        Height = 369
        Color = clCream
        Ctl3D = False
        Font.Charset = DEFAULT_CHARSET
        Font.Color = clWindowText
        Font.Height = -12
        Font.Name = 'Verdana'
        Font.Style = []
        Lines.Strings = (
          
            '                                                                ' +
            '          TEXT TOOLS YARDIM'
          ''
          ''
          '******** DOSYA SE'#199'?M? **************'
          
            'Bu b'#246'l'#252'mdeki dizin se'#231'me ve i'#351'lem yap'#305'lacak dosyalar'#305' se'#231'me i'#351'le' +
            'mleri di'#287'er b'#246'l'#252'mlerdede kullan'#305'l'#305'yor.'
          ''
          
            'Buradaki i'#351'lemler ile HTML i'#231'indeki ilk b'#246'l'#252'm ve son b'#246'l'#252'mleri k' +
            'esip ayn'#305' isimde uzant'#305's'#305' txt olan'
          'bir dosya olarak kaydediyoruz.'
          ''
          'S'#305'ras'#305' ile '#351'u i'#351'lemleri yap'#305'n'#305'z.'
          ''
          
            '1- Filtre den dosya t'#252'r'#252'n'#252' se'#231'iniz. Se'#231'enek yok ise kendiniz *.a' +
            'md format'#305'nda yazabilirsiniz.'
          
            '2- "'#199'al'#305#351#305'lacak dizini se'#231'iniz" b'#246'l'#252'm'#252'nden '#214'nce s'#252'r'#252'c'#252' y'#252' C: se'#231 +
            'ilidir.'
          
            '3- S'#252'r'#252'c'#252' se'#231'ti'#287'iniz de a'#351'a'#287#305'daki listede dizin isimleri gelecek' +
            'tir. De'#287'i'#351'iklik yapaca'#287#305'n'#305'z dosyalar'#305'n'
          
            '   bulundu'#287'u dizini '#231'ift t'#305'klay'#305'n'#305'z. Ayn'#305' anda "Arama dizini" ku' +
            'tusunda se'#231'ti'#287'iniz dizin '
          '   tam yolu ile birlikte g'#246'r'#252'necektir.'
          
            '4- Alt dizinleri de i'#351'leme dahil edecekseniz "Alt dizinleri de a' +
            'ra" y'#305' t'#305'klayarak atif hale getirmeniz gerekiyor.'
          '5- Ara butonuna bas'#305'n'#305'z.'
          '6- Dosyalar sol tarafdaki kutuda listelenecektir.'
          
            '7- Listelenen b'#252't'#252'n dosyalarda i'#351'lem yapacaksaniz. "T'#252'm'#252'n'#252' se'#231'" ' +
            'butonunu t'#305'klay'#305'n'#305'z.'
          
            '   B'#252't'#252'n dosyalar'#305' se'#231'mekten vazge'#231'tiyseniz "T'#252'm'#252'n'#252' se'#231'" butonun' +
            'u tekrar t'#305'klay'#305'n'#305'z.'
          
            '8- Belirli dosyalarda i'#351'lem yapacaksan'#305'z. Her bir dosyan'#305'n ba'#351#305'n' +
            'daki kutuyu i'#351'aretlemeniz yeterli olucakt'#305'r.'
          
            '9- O an i'#351'lem yap'#305'lan dosyay'#305' "i'#351'lem yap'#305'lan dosya" kutusunda g'#246 +
            'receksiniz.'
          ''
          '******** BUL & DE'#286#304#350'T'#304'R **************'
          
            'Bu b'#246'l'#252'mde alt dizinler dahil b'#252't'#252'n dosyalarda bul de'#287'i'#351'tir yap'#305 +
            'labilir.'
          'Html ve txt i'#231'erikli dosyalarda temizlik yapabilirsiniz.'
          ''
          
            'Bul de'#287'i'#351'tir '#246'zelli'#287'ini kullanmak i'#231'in s'#305'ras'#305' ile '#351'u i'#351'lemleri y' +
            'ap'#305'n'#305'z.'
          
            #214'ncelikle DOSYA SE'#199'?M? b'#246'l'#252'm'#252'ndeki 1 den 8 dahil olmak '#252'zere i'#351'l' +
            'emleri yap'#305'n'#305'z.'
          ''
          
            '1- "Bunu bul" kutusu bir den '#231'ok kelime/c'#252'mle deste'#287'i sa'#287'lamakta' +
            'd'#305'r'
          
            '   bu kutuya yazaca'#287#305'n'#305'z alt alta kelimeler/c'#252'mleler hepsi birde' +
            'n i'#351'leme dahil edilecektir.'
          
            '2- "Bununla de'#287'i'#351'tir"  kutusuna yazaca'#287#305'n'#305'z kelime/c'#252'mle ler  "B' +
            'unu bul" kutusundaki kar'#351#305'l'#305'k '
          
            '   gelen kelime ile de'#287'i'#351'tirilir. 1. sat'#305'rdaki kelime 1. sat'#305'rda' +
            'k ile 2. 2. ile gibi.'
          
            '3- '#220'stteki kutuya kelime/c'#252'mle ler yad'#305'ktan sonra alttaki kutuya' +
            ' bir'#351'ey yazmazsan'#305'z, bulunacak b'#252't'#252'n '
          '   kelimeler silinecektir.'
          
            '4- Her iki kutuyu doldurduktan sonra "Bul" butonunu t'#305'klarsan'#305'z ' +
            'sa'#287'daki listede '
          
            '   hangi kelime, hangi dosyada ka'#231' defa bulundu gibi istatistikl' +
            'eri g'#246'rebilirsiniz.'
          
            '5- "De'#287'i'#351'tir" butonunu t'#305'klarsan'#305'z "Bunu bul" listesinde bulunan' +
            ' kelime/c'#252'mle ler bulunarak, '
          
            '   Bununla de'#287'i'#351'tir listesindeki kar'#351#305'l'#305'k gelen kelimeler ile de' +
            #287'i'#351'tirilecektir.'
          ''
          
            '** Bul de?i?tir i?lemleri byte d'#252'zeyinde yap?lmaktad?r. Bu y'#252'zde' +
            'n '
          '    uzun s'#252'rmektedir.'
          ''
          ''
          ''
          #214'rnekler :'
          '********** '#214'rnek 1 **********'
          'BUNU BUL'
          'images\'
          'BUNUNLA DE'#286#304#350'T'#304'R'
          'resimler\'
          ''
          
            'De'#287'i'#351'tir i t'#305'klad'#305#287#305'n'#305'zda images\ leri bulup resimler\ olarak de' +
            #287'i'#351'tirir.'
          '********** '#214'rnek 2 **********'
          'BUNU BUL'
          'images\'
          'egitim\'
          'BUNUNLA DE'#286#304#350'T'#304'R'
          'resimler\'
          'Dersler\'
          ''
          
            'De'#287'i'#351'tir i t'#305'klad'#305#287#305'n'#305'zda images\ leri bulup resimler\ olarak de' +
            #287'i'#351'tirir.'
          
            '                          e'#287'itim\ leri bulup Dersler\ olarak de'#287 +
            'i'#351'tirir.'
          '********** '#214'rnek 3 **********'
          'BUNU BUL'
          'images\'
          'egitim\'
          'BUNUNLA DE'#286#304#350'T'#304'R'
          'resimler\'
          ''
          
            'De'#287'i'#351'tir i t'#305'klad'#305#287#305'n'#305'zda images\ leri bulup resimler\ olarak de' +
            #287'i'#351'tirir.'
          '                          e'#287'itim\ leri bulup siler.'
          '********** '#214'rnek 4 **********'
          'BUNU BUL'
          'images\'
          'egitim\'
          'BUNUNLA DE'#286#304#350'T'#304'R'
          ''
          'De'#287'i'#351'tir i t'#305'klad'#305#287#305'n'#305'zda images\ leri bulup siler.'
          '                          e'#287'itim\ leri bulup siler.'
          '*****************************'
          'DOSYA '#304#350'LEMLER'#304' TEXT VEYA HTML'
          ''
          'Bu i'#351'lemler ile, bir txt veya html dosyas'#305'nda,'
          '- Bo'#351' sat'#305'rlar silinebilir'
          '- B'#252't'#252'n bo'#351'luklar silinebilir '
          '- Silinecek bir sat'#305'rda belirleyece'#287'iniz bir kelime/c'#252'mle e'#287'er'
          '      -sat'#305'r ba'#351'l'#305'nda ise'
          '      -sat'#305'r sonunda ise'
          '      -Sat'#305'r i'#231'inde ise o sat'#305'r'#305' siler.'
          ''
          'Bu '#246'zelli'#287'ini kullanmak i'#231'in s'#305'ras'#305' ile '#351'u i'#351'lemleri yap'#305'n'#305'z.'
          
            #214'ncelikle  TEXT TOOLS b'#246'l'#252'm'#252'ndeki 1 den 8 dahil olmak '#252'zere i'#351'le' +
            'mleri yap'#305'n'#305'z.'
          ''
          
            '1- "Bo'#351' sat'#305'rlar'#305' sil" i i'#351'aretleyip "'#304#351'leme ba'#351'la" butonunu t'#305'k' +
            'larsan'#305'z'
          '   se'#231'ti'#287'iniz dosyalardaki  b'#252't'#252'n bo'#351' sat'#305'rlar silinir.'
          
            '2- "B'#252't'#252'n bo'#351'luklar'#305' sil" i i'#351'aretleyip "'#304#351'leme ba'#351'la" butonunu ' +
            't'#305'klarsan'#305'z'
          '   se'#231'ti'#287'iniz dosyalardaki  b'#252't'#252'n bo'#351'luklar'#305' siler.'
          
            '3- "Se'#231'imli sat'#305'r sil" i'#351'aretleyip yan'#305'ndaki kutuya kelime/c'#252'mle' +
            ' yaz'#305'n. '
          '   Yan'#305'ndaki kutudan i'#351'lem t'#252'r'#252'n'#252' se'#231'in.'
          '   '#304'le ba'#351'lar : Yazd'#305#287#305'n'#305'z kelime/c'#252'mle sat'#305'r'#305'n ba'#351#305'nda varsa.'
          '   '#304'le biter  : Yazd'#305#287#305'n'#305'z kelime/c'#252'mle sat'#305'r'#305'n sonunda varsa.'
          
            '   '#304#231'erir     : Yazd'#305#287#305'n'#305'z kelime/c'#252'mle sat'#305'r'#305'n i'#231'inde ge'#231'iyorsa' +
            '.'
          
            '4- "Tablar? sil"  i i'#351'aretleyip "'#304#351'leme ba'#351'la" butonunu t'#305'klarsa' +
            'n'#305'z'
          '   se'#231'ti'#287'iniz dosyalardaki  b'#252't'#252'n Tab lar? siler.'
          ''
          
            'Bundan sonras'#305' size kalm'#305#351'. Saks'#305'y'#305' '#231'al'#305#351't'#305'r'#305'n ve daha de'#287'i'#351'ik s' +
            'onu'#231'lara var'#305'n.'
          
            'Yaz'#305'l'#305'm ile ilgili hatalar'#305' l'#252'tfen asri_2121@hotmail.com adresin' +
            'e rapor ediniz.'
          #304'yi '#231'al'#305#351'malar dilerim.'
          ''
          'Asri')
        ParentCtl3D = False
        ParentFont = False
        ScrollBars = ssVertical
        TabOrder = 0
      end
    end
  end
  object OpenDialog1: TOpenDialog
    Left = 640
    Top = 48
  end
end
Öğrenmek ve öğretmek, akıntıya karşı yüzmek gibidir ilerleyemediğiniz taktirde gerilersiniz.
Salih
Üye
Mesajlar: 250
Kayıt: 11 Mar 2004 05:36

Mesaj gönderen Salih »

Çok teşekkür ederim

Kodları aldım, deniyorum. Derleme sırasında :

Kod: Tümünü seç

warning :    unit FileCtrl is specific to a platform ve
Fatal Error :    File not fount : UFileInfo.dcu 

şeklinde 2 tane mesaj veriyor. uFileinfo yu arıyorum şimdi. Çok çok teşekkürler,
Sevgi, Saygı.....
Kullanıcı avatarı
Asri
Kıdemli Üye
Mesajlar: 767
Kayıt: 16 Eyl 2003 09:54
Konum: istanbul

Mesaj gönderen Asri »

Salih yazdı:Derleme sırasında :

Kod: Tümünü seç

warning :    unit FileCtrl is specific to a platform ve
Fatal Error :    File not fount : UFileInfo.dcu 

şeklinde 2 tane mesaj veriyor. uFileinfo yu arıyorum şimdi. Çok çok teşekkürler,
.dcu, .dfm, .pas dosyalarının adı ufileinfo dur unit isimlerinin farklı olmasından kaynaklanabilir.

tam olarak sorunun nerden kaynaklandığını bilemiyorum.

isterseniz size proje olarak kaynak kodları gönderebilirim.
asri_2121@hotmail.com

iyi çalışmalar.
Öğrenmek ve öğretmek, akıntıya karşı yüzmek gibidir ilerleyemediğiniz taktirde gerilersiniz.
Cevapla