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