.NET Search String Accuracy

11.07.2005

Okuyucu : 2.054
Günlük Okuyucu : 2

 

Kodu CHM sayfalarında bulunan ISBN numaralarının doğruluk oranı oluşturabilmek için yazdım. Temel olarak bir string' in etrafında başka bir string olup olmadığını arıyor.

  1. Önce stringi buluyor
  2. Sonra +/- n karakter alıyor
  3. Bu alınan string içerisinde ikinci kelimeyi arıyor ve % olarak ne kadar yakında olduğunu belirtiyor

Bu sadece yardımcı bir fonksiyon eğer daha gerçekçi bir doğruluk oranı oluşturacaksanız muhtemelen bir çok yan materyal daha kullanacaksanız. Örnek olarak bu ISBN projesinde CHM' nin açılış sayfasında (default topic) ve son sayfasında bulunan ISBN numaralarının doğruluk payı otomatik olarak yükselecek. Aynı şekilde eğer bir sayfada birden ISBN numarası bulunuyorsa muhtemelen "referanslar" sayfasıdır ve bu da doğruluk oranını düşürmelidir.

Bu noktada projeye yan proje olarak birbirine referans veren kitapların listesini de üretebiliriz.

Kod VB.NET ile yazılmıştır, syntax yüzünden ASP takliti yapıyor inanmayın.

Kaynak Kodunu Download Edin (Download Source Code);

/opensource/source-code/CheckAround.txt

Kaynak Kod;

1 : <%
2 : Private Function CheckAround(ByVal HTML As String, ByVal Found As String, Optional ByVal SearchValue As String = "ISBN") As Integer

4 : Dim SearchTolerance As Integer = 100
5 : Dim SearchMidRange As Integer = (SearchTolerance * 2) + Found.Length
6 : Dim MidStart As Integer
7 : Dim PosFound As Integer
8 : Dim MidHTML As String

10 : PosFound = HTML.IndexOf(Found)

12 : 'Must not be possible
13 : If PosFound < 1 Then
14 : MessageBox.Show("I can not found the supplied ISBN in given HTML Source", "Unknown Error !", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
15 : Exit Function
16 : End If

18 : MidStart = PosFound - SearchTolerance

20 : 'Check around for possible out of index errors when HTML too short
21 : If MidStart < 0 Then MidStart = 1
22 : If HTML.Length < MidStart + SearchMidRange Then SearchMidRange = HTML.Length - MidStart

24 : 'Get mid part of the HTML source
25 : MidHTML = HTML.Substring(MidStart, SearchMidRange)

27 : Dim Accuracy As Integer
28 : Accuracy = MidHTML.IndexOf(SearchValue)

30 : If Accuracy = -1 Then
31 : Return 0

33 : Else
34 : Return CInt(Math.Floor(Accuracy * 100) / SearchTolerance)

36 : End If

38 : End Function
39 : %>
Source Script is modified version of HiLiter
Ferruh Mavituna
© 2002-2007, Ferruh Mavituna

Sabit IP Adresi : 81.22.99.133, SSL Erişimi, Hakkında