Her türlü veritipini kıyaslamak için.. | Delphi Programming

Transkript

Her türlü veritipini kıyaslamak için.. | Delphi Programming
Contact Me | Subscribe
D e l p h i
P r o g r a m m i n g
Search Keywords
There are only 10 types of people in the world: Those who understand binary, and those
who don’t.
Home
Hakkında
TObject.Create
Delphi
Ziyaretçi Defteri
Posted by Tuğrul HELVACI - Mayıs 15, 2009 Comments 2
Her türlü veritipini kıyaslamak için..
Plugin WP FlashTime by horoscop 2009.org
requires Flash Player 8 or better currency
converter calculator.Plugin creat de horoscop |
horoscop saptamanal | horoscop zilic | horoscop
| play sonic games
Şimdi veritiplerinin kıyaslanması ile alakalı bir dökümana ne gerek var diye düşünebilirsiniz,
haklı da olabilirsiniz
Ama ben yine değişik bir yolla nasıl yapıldığını göstermeye
çalışacağım.. Ve bu yol çok esnek bir yol olacak. Şimdi sizlerle bir fonksiyon yazacağız, bu
fonksiyon; içerisine karşılaştırılacak veritiplerini alacak ve byte byte kıyaslama yapacak.(En
sağlam yöntem
) Ardından da sonucu Boolean olarak döndürecek.
Yazmaya başlayalım..
01.
02.
03.
04.
05.
06.
Etiketler
function IsEqual(var Source , Dest ; Size : Integer) :
Boolean;
type
TBytes = array[0..MaxInt-1] of Byte;
var
N : Integer;
begin
Absolute Abstract Classes ActionScript Algoritma
API
Bug Byte Arrays Class Reference CloseHandle
COM CreateDesktop CreateEvent CreateMutex
CreateProcess CreateRemoteThread CreateSemaphore
CreateToolHelp32SnapShot CreateWaitableTimer
DeleteCriticalSection delphi 2010 DTS EnterCriticalSection
PDFmyURL.com
06.
07.
08.
09.
10.
begin
N := 0;
while (N <= Size) and (TBytes(Source)[N] = TBytes(Dest)[N])
do Inc(N);
Result := (N = Size);
end;
Şimdi bu da nedir demeyin, açıklayalım..
Source ve Dest isimli parametreler Delphi’de Untyped Parameters olarak adlandırılırlar..Yani
tipi olmayan parametreler.Bu fonksiyona istediğiniz tipte parametre geçebileceğiniz anlamına
gelir. Yani integer, word, single, string, record, object, array vs. keyfinize göre ne geçmek
isterseniz. Son parametre olan “Size” ise karşılaştırma yapılacak tiplerin veri büyüklüğünü
içerir. Şimdi daha iyi anlayabilmek adına bir kaç örnek verelim..
01.
02.
03.
04.
05.
06.
07.
08.
09.
10.
11.
var
iValue_1 : Integer;
iValue_2 : Integer;
begin
iValue_1 := 100;
iValue_2 := 100;
if IsEqual(iValue_1, iValue_2 , SizeOf(Integer))
then ShowMessage('İki değişken birbirine eşit')
else ShowMessage('İki değişken birbirinden farklı');
end;
Eh şimdi yukarıdaki kıyaslamada bizim çok fazla işimize yaramadı gibi görünüyor bu yeni
fonksiyonu kullanmak.Diyebilirsiniz ki “bir if ifadesinde işi bitirebilirdim , ne gerek var canım bu
kadar uğraşmaya..” Doğru haklısınız, peki o zaman örneklere devam edelim
01.
02.
03.
04.
05.
06.
07.
08.
09.
10.
11.
12.
13.
14.
15.
16.
17.
EnumDesktopProc EnumDesktops Flash
Function
Pointer GetCurrentProcess
GetIconInfo GetKeyState
GetLastInputInfo GetProcessMemoryInfo GetStartupInfo
GetThreadContext GetTickCount GetTickCount64
Hacking Inheritance InitializeCriticalSection
Interface InterlockedCompareExchange
InterlockedDecrement InterlockedExchange
InterlockedExchangeAdd InterlockedIncrement
JavaScript LeaveCriticalSection Method Pointer
Module32First Module32Next MSSQL OpenDesktop
OpenEvent OpenMutex OpenSemaphore
OpenWaitableTimer Operator Overloading
Persistance
Pointer Procedure Pointer Process
Process32First Process32Next Query QueryInterface
QueryPerformanceCounter Queue ReleaseMutex
ReleaseSemaphore Reqursion ResetEvent ResumeThread
RTTI SetEvent SetProcessWorkingSetSize
SetThreadContext SetWaitableTimer Smilarity SORT SQL
SQL Server
Stream SuspendThread Sw itchDesktop
TDateTime TerminateProcess TerminateThread
Thread TInterfacedObject TValue Untyped
Parameters VirtualAllocEx VirtualFreeEx
WaitForSingleObject
WaitForMultipleObjects
Weaver WriteProcessMemory _AddRef _Release
WP Cumulus Flash tag cloud by Roy Tanck
requires Flash Player 9 or better.
TMyRecord = record
Field_1 : String[10];
Field_2 : Integer;
end;
var
myRec_1,
myRec_2 : TMyRecord;
begin
myRec_1.Field_1 := 'Deneme';
myRec_1.Field_2 := 2006;
myRec_2.Field_1 := 'Test';
myRec_2.Field_2 := '2008';
if IsEqual(myRec_1, myRec_2 , SizeOf(TMyRecord))
then ShowMessage('İki değişken birbirine eşit')
Son Yorumlar
Yeni Veri Tipleri ve Operator Overloading için
Tuğrul HELVACI
Yeni Veri Tipleri ve Operator Overloading için
Zafer Çelenk
Delphi ve Google Maps API için Tuğrul
HELVACI
Delphi ve Google Maps API için ahmet
Ziyaretçi Defteri için Tuğrul HELVACI
PDFmyURL.com
18.
19.
end;
else ShowMessage('İki değişken birbirinden farklı');
Peki bu nasıldı, işe yarar mı
01.
02.
03.
04.
05.
06.
07.
08.
09.
10.
11.
Şimdi bir başka örnek daha verelim..
Son Yazılar
var
iValue : Integer;
wValue: Word;
begin
iValue := 100;
wValue := 100;
end;
Ziyaretçi Defteri için Tuğrul HELVACI
if IsEqual(iValue, wValue , SizeOf(Integer))
then ShowMessage('İki değişken birbirine eşit')
else ShowMessage('İki değişken birbirinden farklı');
Peki yukarıdaki test neticesinde ekranda ne yazmasını bekleriz.? “İki değişken birbirine eşit”
mesajını bekleriz değil mi, çünkü değişkenlerin içerikleri eşit. Ancak değişkenlerin boyutları
birbirinden farklı. Integer 4 byte ve word 2 byte..Biz ise SizeOf(Integer) yazarak 4 byte
karşılaştırma yapacağımızı belirttiğimiz için haliyle bu iki değişken birbirine eşit olamıyor. Ama
kodumuzdaki SizeOf(Integer) ifadesini SizeOf(Word) olarak değiştirirsek iki değişkenimizinde
ilk 2 Byte’ı kıyaslamaya tabi olacakları için sonuç beklediğimiz gibi olur ve değişkenler eşit
mesajı verilir. Bu ve buna benzer pek çok kıyaslama yapabilirsiniz. Herhangi bir tipte olan iki
array’i de karşılaştırabilirsiniz.. Hayalgücünüze kalmış gerisi..
Kaynak: Delphi Language Guide
Saygılar, sevgiler
[Translate]
2 Comments
Özkan Danacı
on Mayıs 15th, 2009
hmmmm.
Böyle bir şey benim aklıma geliyordu bu sıralar..
Bunu nasıl yapabiliriz yine aklımı kurcalıyordu.
Araştırma yapmaya da vakit bulamadık işlerin yoğunluğundan.
Derken abimiz bir site açtı.
Sabah yenilikleri incelerken ne göreyim. Benim mevzu.
Dedim bu kadar tevafuk olur.
Yeni Veri Tipleri ve Operator Overloading
Interface Nedir, Nerelerde ve Neden Kullanırız ?
Derinlemesine Threading..(3)
SQL’de Benzerlik Algoritmaları…
Full Text Searching…
Kategoriler
Genel (4)
IDE (1)
İşletim Sistemi (7)
Programlama (43)
.Net (3)
C# (2)
Delphi (43)
Grafik (2)
Internet (4)
Veritabanı (3)
Win32 (6)
Takvim
Temmuz 2010
Pts Sal Çar Per Cum Cts Paz
1
2
3
4
PDFmyURL.com
Bu tabiki değişik hertürlü iş için kullanılabilir.
Teşekkür ediyoruz devamını bekliyoruz…
1
5 6 7 8
12 13 14 15
19 20 21 22
26 27 28 29
2
9
16
23
30
3
10
17
24
31
4
11
18
25
« Haz
Tuğrul HELVACI
on Mayıs 15th, 2009
Teşekkür ederim özkancım, devamı gelecek inşallah. Bunlar eski
makalelerim, yenilerini de haftasonunda hazırlamayı düşünüyorum.
Arşivler
Share your comment
Name (required)
Haziran 2010 (1)
Mayıs 2010 (1)
Nisan 2010 (3)
Ağustos 2009 (1)
Temmuz 2009 (2)
Haziran 2009 (7)
Mayıs 2009 (32)
Mail (required)
Bağlantılar
Website
Bir Türkçe Sevdalısı..
Delphi Türkiye Forum
Gürcan ÖZTÜRK
M.Fatih KÜÇÜKKELEPÇE
Memik YANIK Kişisel
Memik YANIK’ın Günlüğü
Nick Hodges
Sinan BARAN
Zafer Çelenk
PDFmyURL.com
Ziyaretçi Bilgileri
Ziyaret: 140 / 12071
Beğenilenler
Delphi 2010 (Weaver) ve TValue - 14 votes
Derinlemesine Threading..(3) - 13 votes
Derinlemesine Threading..(2) - 6 votes
Derinlemesine Threading..(1) - 6 votes
Yeni Veri Tipleri ve Operator Overloading - 4
votes
Win32 & .Net(Delphi->C#) - 4 votes
Delphi ve Google Maps API - 3 votes
TThread.WaitFor Bug.. - 3 votes
BITS(Background Intelligent Transfer Service)
ile sessiz sedasız download ;) - 3 votes
Bir Kiosk ve CreateDesktop macerası.. - 3
votes
Meta
Giriş
Yazılar RSS
Yorumlar RSS
WordPress.org
Etiketler-Liste
PDFmyURL.com
Absolute
API
Byte Arrays Class Reference
COM CreateDesktop CreateProcess
CreateRemoteThread
CreateToolHelp32SnapShot
Function
DTS EnumDesktopProc EnumDesktops
Pointer GetCurrentProcess
GetIconInfo GetKeyState
GetLastInputInfo GetProcessMemoryInfo GetStartupInfo
Hacking Inheritance Interface JavaScript
Method Pointer Module32First Module32Next
OpenDesktop Persistance Pointer Procedure
Pointer
Process Process32First Process32Next
RTTI SetProcessWorkingSetSize SQL
Server Sw itchDesktop TerminateProcess
Reqursion
Thread Untyped Parameters VirtualAllocEx
WaitForSingleObject
VirtualFreeEx
WriteProcessMemory
Delphi About
Auto Select All The Text For TCustomEdit On
Mouse Click 29 Haziran 2010
Memory Leak Notification in Delphi - Report
Memory Leak on Program Exit 27 Haziran
2010
PCRE Workbench - Regular Expression Test
Tool - Source Code Delphi Application 22
Haziran 2010
Deleting Dataset Records In a Loop - Poll
Results - Why All Records Are Not Deleted 21
Haziran 2010
Force TListView's Edit Mode using a Keyboard
Shortcut 17 Haziran 2010
Implementing On Item Click / Double Click for
Delphi's TListView control 16 Haziran 2010
Run Your Delphi Application in Full Screen Implement "F11 - Full Screen" 14 Haziran 2010
PDFmyURL.com
Displaying Enumerated Properties in a
Selectable List - Run-Time Enum Selection in
Delphi 10 Haziran 2010
How Do You Delete Dataset Records In a
Loop? 08 Haziran 2010
Display Custom Hints for Status Bar Panels 07
Haziran 2010
Sık Ziyaret Edilenler
Sayfa: Home
(16057)
Delphi ve Google Maps API
(4132)
Delphi ve Google Maps API
(1972)
Nedir bu Thread’lerden çektiğimiz..!
(1444)
Delphi & Animated Flash Charts(Fusion Charts)
(1174)
Delphi & JavaScript Kardeşliği
(932)
Delphi 2010 (Weaver) ve TValue
(918)
Derinlemesine Threading..(1)
(886)
Derinlemesine Threading..(2)
(695)
Win32 & .Net(Delphi->C#)
(617)
Kategori: Delphi
(613)
Bir Kiosk ve CreateDesktop macerası..
(565)
Sayfa: Hakkında
(563)
PDFmyURL.com
TThread.WaitFor Bug..
(540)
Delphi 2010 (Weaver) ve TValue
(530)
Oylama..
Sitedeki makaleleri yararlı buluyor musunuz
?
Evet, yararlı ama yetersiz.
Evet, son derece yararlı.
Evet, mükemmel.
Hayır, yararlı değil.
Hayır, hem yararlı değil, hem de yetersiz.
Hayır, rezalet.
Vote
View Results
Delphi'nin hangi sürümünü kullanıyorsunuz
?
Delphi 5 yada öncesi
Delphi 6
Delphi 7
Delphi 8
Delphi 2005
Delphi 2006
Delphi 2007
PDFmyURL.com
Delphi 2009
Delphi 2010
Vote
View Results
Son Yorumlar
Yeni Eklenenler
Linkler
Yorumunuza teşekkürler. Aslında operatör aşırı
yüklemenin sınıflarda pek bir avantaj... by Tuğrul
HELVACI
Yeni Veri Tipleri ve Operator Overloading
Bir Türkçe Sevdalısı.. - Taha EKREM
Interface Nedir, Nerelerde ve Neden Kullanırız ?
Delphi Türkiye Forum
Merhaba, Ben ilk olarak merakımdan dolayı uğraştığım
C++ dilinde görmüştüm Operatör... by Zafer Çelenk
Derinlemesine Threading..(3)
Gürcan ÖZTÜRK - Gürcan ÖZTÜRK
SQL’de Benzerlik Algoritmaları…
M.Fatih KÜÇÜKKELEPÇE
Full Text Searching…
Memik YANIK Kişisel
Delphi 2010 (Weaver) ve TValue
Memik YANIK’ın Günlüğü
Derinlemesine Threading..(2)
Nick Hodges
Merhaba, makaleyi yazdığım zaman kodlarda bir sorun
yoktu. Belki Google Maps'de bir şeyler... by Tuğrul
HELVACI
Merhaba Kodlarda bir sorun mu var? yoksa ggogle bu
hizmeti durdurdu mu? Sadece boş bir... by ahmet
Programcı arkadaşların daha fazla takıldığı bir yerde
yazsa idiniz mesajınızı daha... by Tuğrul HELVACI
Sinan BARAN
Tuğrul Bey Yeri Burasımıdır Bilmiyorum O nedenle
hata ediyorsam özür dilerm bir iş ilanı... by geyikben
Teşekkürler ;) by Tuğrul HELVACI
Copyright © 2009 Delphi Programming
Pow ered by WordPress | Increase Traffic w ith TrafficWhirl.
PDFmyURL.com

Benzer belgeler

Class of …… | Delphi Programming

Class of …… | Delphi Programming Pointer GetCurrentProcess GetIconInfo GetKeyState

Detaylı