Author Archives: Hasan Dedeoğlu

Delphi Sayısal mı Kontrolü

isinteger_delphi

Delphi de diğer bazı dillerde olduğu gibi (isint() – isinteger() vb.) girilen bir değerin sayısal olup olmadığını kontrol eden bir fonksiyon bulunmamaktadır. Bunun için bu kontrolün yapılacağı fonksiyonu kendimiz yazmamız gerekir. Aşağıda yer alan iki fonksiyon da kendisine verilen string ifadenin sayısal olup olmadığını kontrol eder. İkinci fonksiyon biraz daha farklı çalışır, gelen ifadeyi direkt olarak integer tip değişkene dönüştürmeyi dener eğer sistem hata verirse geriye false döndürür ve hatayı yok sayarak çalışmaya devam eder ancak sistem hata vermezse geriye true döndürür ve çalışmaya devam eder.

{1.}

function IsStrANumber(const S: string): Boolean;
var
P: PChar;
begin
P := PChar(S);
Result := False;
while P^ <> #0 do
begin
if not (P^ in [‘0’..’9′]) then Exit;
Inc(P);
end;
Result := True;
end;

{2.}

function IsStrANumber(const S: string): Boolean;
begin
Result := True;
try
StrToInt(S);
except
Result := False;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if IsStrANumber(edit1.Text) = True then
ShowMessage(‘Girilen ifade sadece sayısal ifadeler içeriyor!’);
end;



Delphi Stringi (Metni) Diziye Bölme – Split to Array

delphi_split_to_array

Aşağıdaki kod bloğu ile string ifadeyi istediğiniz karakterlerden bölerek diziye atabilirsiniz. Aşağıdaki örnek “hasan:hasandedeoglu.com:bilisim teknoloji:lerine dair sohbetler” metnini 4 elemanlı bir diziye bölecek ve elemanları “hasan”, “hasandedeoglu.com”, “bilisim teknoloji”, “lerine dair sohbetler” olacaktır.

program Project1;

{$APPTYPE CONSOLE}

uses
Classes;

var
List: TStrings;
begin
List := TStringList.Create;
try
ExtractStrings([‘:’], [], PChar(‘hasan:hasadedeoglu.com:bilisim teknoloji:lerine dair sohbetler’), List);
WriteLn(List.Text);
ReadLn;
finally
List.Free;
end;
end.

Liste elemanları istenilen diziyi ifade edecektir:

List[0] = ‘hasan’
List[1] = ‘hasandedeoglu.com’
List[2] = ‘bilisim teknoloji’
List[3] = ‘lerine dair sohbetler’




Delphi Text Dosyası İşlemleri

Delphi Text Dosyasi

Merhaba,

Kullanacağımız kütüphane FileCtrl kütüphanesidir
Uses FileCtrl ; 

Aşağıda yer alan NewTxt prosedürü C:\ek.txt yoluna içinde “hasandedeoglu.com – bilisim teknolojilerine dair sohbetler…” yazılı olan bir text dosyası kaydeder. ek.txt dosyası var ise üzerine yazar
procedure NewTxt;

var
f: Textfile;
begin
AssignFile(f, ‘c:\ek.txt’); {Dosya atandı}
ReWrite(f); {ek.txt isminde yeni bir dosya oluşturuldu}
Writeln(f, ‘hasandedeoglu.com – bilisim teknolojilerine dair sohbetler…’);
Closefile(f); {F yani ek.txt kapatıldı}
end;

Aşağıda yer alan OpenTxt prosedürü var olan bir text dosyasını açar ve üzerinde değişiklik yapar
procedure OpenTxt;
var
F: Textfile;
begin
AssignFile(f, ‘c:\ek.txt’); {Dosya atandı}
Append(f); {Dosyayı düzenleme amaçlı açtı}
Writeln(f, ‘hasandedeoglu.com – bilisim teknolojilerine dair sohbetler…’);
Closefile(f); {F dosyası kapatıldı}
end;

Aşağıda yer alan ReadTxt prosedürü var olan bir text dosyasını açar ve ilk satırını gösterir
procedure ReadTxt;
var
F: Textfile;
str: string;
begin
AssignFile(f, ‘c:\ek.txt’); {Dosya atandı}
Reset(f); {Dosyayı okuma amaçlı açtı}
Readln(f, str);
ShowMessage(‘Text dosyasının ilk satırı:’ + str);
Closefile(f); {F dosyasını kapat}
end;



1 2 3 4 6