Kod: Tümünü seç
{ *********************************************************************** }
{ }
{ UStrinsF : Strings tipindeki değişkenler için kütüphane }
{ Bu Unit TStrings tipindeki değişkenler için çeşitli fonksiyonlar }
{ içermektedir.Programlarımızda sıklıkla kullandığımız TStrings tipindeki}
{ değişkenler için yazılmıştır }
{ *********************************************************************** }
unit UStringsF;
interface
uses Classes,SysUtils;
type
TAramaTipi =(OlduguGibi,ilebaslayan,ilebiten,icindeolan);
type
AramaSonucu =record
BulunanSayisi : Integer;
BulunanSatirlar : Array[0..65535] of integer;
end;
type
TStringsF = class
private
{ Private declarations }
public
{ Public declarations }
procedure InitializeValues;
procedure DestroyValues;
// Tstrings tipindeki veriyi Stringe çevirir
function StringsToStr (FStrings : Tstrings;EndOfLineChar :boolean = True) : String;
// KaynakListe den Çıkartılacak listede olan elemanları çıkartır.
function ListeFark (KaynakListe,CikartilacakListe : Tstrings) : Tstrings;
// Hem 1.Liste hem de 2. liste de olanları verir.
function ListeKesisim (KaynakListe,CikartilacakListe : Tstrings) : Tstrings;
// Listeleri birleştirir
function ListeBirlesim( Liste1,Liste2 : Tstrings;TekrarlariSil:boolean=true):Tstrings;
// Listede arama yap //TAramaTipi =(OlduguGibi,ilebaslayan,ilebiten,icindeolan);
function Bul(Liste : Tstrings;Aranan : String;AramaTipi:TAramaTipi=OlduguGibi;BuyukKucukHarfDuyarli : Boolean=false):AramaSonucu;
// Tüm listeyi BÜYÜK HARFE çevir
function SetUpper(aList:Tstrings) :TStrings;
// Tüm listeyi küçük harfe çevir
function SetLower(aList:Tstrings) :Tstrings;
end;
Var
StringsF : TStringsF;
S,S1,S2,S3 : TStrings;
implementation
procedure TStringsF.InitializeValues;
begin
if s =nil then S :=Tstringlist.Create;
if s1=nil then S1:=Tstringlist.Create;
if s2=nil then S2:=TstringList.Create;
if s3=nil then S3:=TStringlist.Create;
s.Clear;
s1.Clear;
s2.Clear;
s3.Clear;
end;
procedure TStringsF.DestroyValues;
begin
if s <>nil then S.Free;
if s1<>nil then S1.Free;
if s2<>nil then S2.Free;
if s3<>nil then S3.Free;
end;
// Tstrings tipindeki veriyi Stringe çevirir
function TStringsF.StringsToStr (FStrings : Tstrings;EndOfLineChar :boolean = True) : String;
var i : integer;
begin
for i:= 0 to FStrings.Count-1 do
if EndOfLineChar then
result:=result+FStrings.Strings[i]+#13#10
else
result:=result+FStrings.Strings[i]+' ';
end;
// KaynakListe den Çıkartılacak listede olan elemanları çıkartır.
function TStringsF.ListeFark (KaynakListe,CikartilacakListe : Tstrings) : Tstrings;
Var i,k : integer;
fark : boolean;
begin
s.Clear;
for i := 0 to KaynakListe.Count - 1 do
begin
fark:=true;
for k := 0 to CikartilacakListe.Count - 1 do
begin
if CikartilacakListe.Strings[k] = KaynakListe.Strings[i] then fark:=false;
end;
if fark then s.Add(KaynakListe.Strings[i]);
end;
result:=s;
end;
// Hem 1.Liste hem de 2. liste de olanları verir.
function TStringsF.ListeKesisim (KaynakListe,CikartilacakListe : Tstrings) : Tstrings;
Var i,k : integer;
fark : boolean;
begin
s.Clear;
for i := 0 to KaynakListe.Count - 1 do
begin
fark:=true;
for k := 0 to CikartilacakListe.Count - 1 do
begin
if CikartilacakListe.Strings[k] = KaynakListe.Strings[i] then fark:=false;
end;
if not fark then s.Add(KaynakListe.Strings[i]);
end;
result:=s;
end;
// Listeleri birleştirir
function TStringsF.ListeBirlesim( Liste1,Liste2 : Tstrings;TekrarlariSil:boolean=true):Tstrings;
Var i:integer;
begin
s2.Clear;
for i :=0 to liste1.Count - 1 do
if not TekrarlariSil then s2.Add(liste1.Strings[i])
else
if bul(s2,liste1.Strings[i],OlduguGibi,True).BulunanSayisi<=0 then
s2.Add(liste1.Strings[i]);
for i :=0 to liste2.Count - 1 do
if not TekrarlariSil then s2.Add(liste2.Strings[i])
else
if bul(s2,liste2.Strings[i],OlduguGibi,True).BulunanSayisi<=0 then
s2.Add(liste2.Strings[i]);
result:=s2;
end;
function TStringsF.Bul(Liste : Tstrings;Aranan : String;AramaTipi:TAramaTipi=OlduguGibi;BuyukKucukHarfDuyarli : Boolean=false):AramaSonucu;
Var
i : integer;
B : Boolean;
ASN: AramaSonucu;
begin
//TAramaTipi =(OlduguGibi,ilebaslayan,ilebiten,icindeolan);
ASN.BulunanSayisi:=0;
for i := 0 to liste.Count - 1 do
begin
B := False;
case AramaTipi Of
oldugugibi :
begin
if buyukkucukharfduyarli then
begin
if liste.Strings[i]=Aranan then b:=true;
end
else
if uppercase(liste.Strings[i])=uppercase(aranan) then b:=true;
end; // OlduguGibi
ilebaslayan :
begin
if buyukkucukharfduyarli then
begin
if pos(Aranan,liste.Strings[i])=1 then b:=true;
end
else
if pos(uppercase(aranan),uppercase(liste.Strings[i]))=1 then b:=true;
end; // OlduguGibi
icindeolan :
begin
if buyukkucukharfduyarli then
begin
if pos(Aranan,liste.Strings[i])>0 then b:=true;
end
else
if pos(uppercase(aranan),uppercase(liste.Strings[i]))>0then b:=true;
end; // OlduguGibi
ilebiten :
begin
if buyukkucukharfduyarli then
begin
if pos(Aranan,liste.Strings[i])=length(liste.Strings[i])- length(Aranan) +1 then b:=true;
end
else
if pos(uppercase(aranan),uppercase(liste.Strings[i]))=length(liste.Strings[i])- length(Aranan)+1 then b:=true;
end; // OlduguGibi
end;
if b then
begin
ASN.BulunanSayisi:=ASN.BulunanSayisi+1;
ASN.BulunanSatirlar[ASN.BulunanSayisi-1]:=i;
end;
end;
result:=ASN;
end;
function TStringsF.SetUpper(aList:Tstrings) : TStrings;
var i : integer;
begin
s.Clear;
for i:=0 to aList.Count-1 do
s.Add(uppercase(alist.Strings[i]));
result:=s;
end;
function TStringsF.SetLower(aList:Tstrings) : Tstrings;
var i : integer;
begin
s.Clear;
for i:=0 to aList.Count-1 do
s.Add(lowercase(alist.Strings[i]));
result:=s;
end;
end.
TStrinsF ve Test Programını indirmek için tıklayın
URL2
Saygılarımla İyi Çalışmalar
