StringInStr sorunu - Çözüldü

Programlama dilleri konusunda bilgi paylaşım alanıdır.
Cevapla
anxious
Byte3
Byte3
Mesajlar: 106
Kayıt: 11 Mar 2015, 07:56

StringInStr sorunu - Çözüldü

Mesaj gönderen anxious »

Tekrar selam :)
Arkadaşlar 50.satırda If StringInStr($SitenameRegex[0], $UrlinputRegex[0]) Then
olan kısmı nasıl kontol edebilirim çünki eğer bir sorun olduğunda burası şöyle bir hata veriyor
If StringInStr($SitenameRegex^ ERROR

Birde kodlarımda bir yanlış kullanım varmı
Şimdiden teşekkürler ediyorum.

Kod: Tümünü seç

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("Form1", 329, 363, 192, 124)
$Input1 = GUICtrlCreateInput("https://www.sordum.net", 56, 48, 201, 21)
$Edit1 = GUICtrlCreateEdit("" & @CRLF, 56, 88, 201, 153, BitOR($ES_MULTILINE, $ES_AUTOVSCROLL, $WS_VSCROLL))
GUICtrlSetData(-1, "http://127.0.0.1/forum/" & @CRLF & _
"https://www.sordum.org/forum/" & @CRLF & _
"http://www.sordum.com/forum/" & @CRLF & _
"sordum.com" & @CRLF & _
"www.sordum.net")
$Button1 = GUICtrlCreateButton("Button1", 80, 264, 75, 25)
GUISetState(@SW_SHOW)
While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $Button1
			$aSiraBulokuUrl = GUICtrlRead($Input1)
			If guictrlread($Input1) = "" Then
			MsgBox(48,"Boş bıraktın!","url alanı boş",5)
Else
$linkontrol = StringRegExp($aSiraBulokuUrl, "(http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?")
		if $linkontrol then
		$patternSiraBul = '(?:http[s]?:\/\/)?(?:www\.)?([\w+\.]+)'
$aUrlArraySirabul = StringRegExp($aSiraBulokuUrl, $patternSirabul, 1)

If IsArray($aUrlArraySirabul) Then
	ConsoleWrite("Ok bu bir url" & @CRLF)
	EndIf
		Else
		MsgBox(48,"Link kontrol","Bu bir Url değil",10)

EndIf
EndIf

_Urlsiralamasi()
	EndSwitch
WEnd

Func _Urlsiralamasi()
	        $Url = False
			$ReadUrl = GUICtrlRead($Input1)
            $UrlinputRegex = StringRegExp($ReadUrl, '(?i)(?m)^(?:https?:\/\/)?(?:www\.)?(\w[^\/]+)',1)
            $sitelisturlRegex = StringSplit(StringStripCR(GUICtrlRead($Edit1)), @LF)

For $i = 1 To UBound($sitelisturlRegex) - 1
	$SitenameRegex = StringRegExp($sitelisturlRegex[$i], '(?i)(?m)^(?:https?:\/\/)?(?:www\.)?(\w[^\/]+)', 3)
                If StringInStr($SitenameRegex[0], $UrlinputRegex[0]) Then
$Url = True
                    ConsoleWrite($SitenameRegex[0] & " Sitesi " & $i & "." & "Sırada" & @CRLF)
                    ExitLoop
;~ ContinueLoop
EndIf
	Next
            If Not $Url Then
               ConsoleWrite($UrlinputRegex[0] & " Sitesi Sıralamada yok" & @CRLF)
			EndIf
EndFunc
Kullanıcı avatarı
BlueLife
Kilobyte1
Kilobyte1
Mesajlar: 215
Kayıt: 29 Ağu 2014, 20:42

Re: StringInStr sorunu

Mesaj gönderen BlueLife »

@anxious

StringRegExp komutu başarısız olmuştur ve bu komuttan aldığın veri array olarak kullandığın için hata çıkıyordur.
Kısaca IsArray komutu ile kontrol yapabilirsin. Yani aşağıdaki yerine;
If StringInStr($SitenameRegex[0], $UrlinputRegex[0]) Then

Aşağıdaki olabilir.

Kod: Tümünü seç

If (IsArray($SitenameRegex) And IsArray($UrlinputRegex)) And StringInStr($SitenameRegex[0], $UrlinputRegex[0]) Then
anxious
Byte3
Byte3
Mesajlar: 106
Kayıt: 11 Mar 2015, 07:56

Re: StringInStr sorunu

Mesaj gönderen anxious »

Sizin koşulu ekleyince problem kalmadı saolun :)
Teşekkür ederim cevabınız için ve sorunumu çözdüğünüz için.
Cevapla