blackman12 Posted March 15, 2012 Share Posted March 15, 2012 StringBetween fonksiyonundan esinlenerek yazdığım bu fonksiyonlarla bir text içerisinden aradığınız bir kelimeyi alarak döndürebilirsiniz. [codebox]Func _AyirGetir($text,$basla, $son = "</em></p>", $ayrac = "nbsp;", $flag = 0) Local $aGetir, $aAyir $aGetir = _AraGetir($text,$basla,$son,$flag) if $flag = 1 Then for $i = 0 to UBound($aGetir) -1 $aAyir = StringSplit($aGetir[$i],$ayrac) $aGetir[$i] = $aAyir[$aAyir[0]] Next Return $aGetir Else $aAyir = StringSplit($aGetir,$ayrac) Return $aAyir[$aAyir[0]] EndIf EndFunc func _AraGetir($text,$basla= "</strong>:",$son="</p>",$flag = 0) if $text = "" then Return $basla = StringRegExpReplace($basla, "(\.|\||\*|\?|\+|\(|\)|\{|\}|\[|\]|\^|\$|\\)", "\\$1") $son = StringRegExpReplace($son, "(\.|\||\*|\?|\+|\(|\)|\{|\}|\[|\]|\^|\$|\\)", "\\$1") $getirelecek = StringRegExp($text, "(?s)(?i)" & $basla & "(.*?)" & $son, 3) if $flag = 1 Then Return $getirelecek Return _Turkcelestir($getirelecek[0]) EndFunc[/codebox] Quote Link to comment Share on other sites More sharing options...
asmazh Posted April 2, 2012 Share Posted April 2, 2012 (edited) Hocam, [color="#0000FF"]StringRegExpReplace(),BitAND(), BitNOT(), BitOR(), BitRotate(), BitShift(), BitXOR(),Sqrt()[/color] bu komutları bir türlü çözemedim. İngilizceden fazla anladığım yok. Siz müsait olduğunuz bir vakitte bunların kısaca bir tanımını yaparak, yine kısaca örneklendirirseniz makbule geçer. Bir çok örnekte görmemize rağmen tam olarak çözemiyoruz görevlerini. Edited April 2, 2012 by asmazh Quote Link to comment Share on other sites More sharing options...
MostWanted Posted April 2, 2012 Share Posted April 2, 2012 Sqrt -> karekök alma işlemi. BitAnd, BitOr pek bizim için geçerli değil.Aslında ben programcılar ne için kullanıyor onu da tam anlayabilmiş değilim fakat özet geçmek gerekirse verdiğin değerleri bitlerini (1 ve 0 larını) karşılaştırarak onun decimal sonucunu veriyor. StringRegExpReplace()-> Bu fonksiyon ölümdür.Bu fonksiyon ile yapamayacağın string işlemi yoktur.Fakat o kadar derindir ki kendileri biz de tam olarak çözebilmiş değiliz.Ancak autoit forumlarından bulduklarımızı biraz modifiye olarak kullanıyoruz. Umarım açıklayabilmişimdir.Belki blackman12 daha iyi biliyodur ondan da bekliyoruz Quote Link to comment Share on other sites More sharing options...
blackman12 Posted April 2, 2012 Author Share Posted April 2, 2012 Biraz ekleme yapmak gerekirse: Sqrt bana göre gereksiz bile denebilir. matematik bilen adam x^(1/2) şeklinde de karekök alabilir hatta bu yöntemle küp kök alabilirim ama autoitte küp kök için bir fonksiyon bulamazsınız mesela. BitOR ve BitAND; eğer 2 tabanında verileriniz var ise (örneğin $deneme = true veya $degisken = false gibi) ve siz $button değişkenli butona bastığınızda bu iki durumu göz önünde bulundurarak bir işlem yaptıracaksanız kullanabilirsiniz. Örnek vermek gerekirse Fast Airbenderın son sürümünde görüceksiniz. Program Kış uykusundayken $kisuykusu = 1 değerini alıyor, ve transparan modda olduğu için diğer pencerelerin üstüne çıkıyor. Programda Her zaman üstte seçeneği seçildiğinde de $ontop = 1 değerini alıyor. Yani bu iki değerden biri 1 e eşitse ben penceremiz diğer pencerelerin üstüne yerleştirmek istiyorum, bu durumda ben winsetontop komutunu verirken WinSetOnTop ( "title", "text", BitOR($kisuykusu,$ontop)) şeklinde kullanıyorum. Böylece kisuykusu = 1 ken $ontop = 0 olsa dahi pencere üstte oluyor. ya da tam tersinde de durum aynı. BitAND ise aynı anda ikisi de 1 olmalıki sonuç 1 çıksın. buna uygun örneği sen geliştir ne kadar anladığını görelim StringRegExpReplace() ı da biraz anladım ama anlatırsam benimde kafam karışır bu komut içimde bi yaradır ki sorma blue_life a sormak lazım onu da. Quote Link to comment Share on other sites More sharing options...
MostWanted Posted April 2, 2012 Share Posted April 2, 2012 sqrt C'ye ayıp olmasın diye konulduğunu düşünüyorum zaten Adamlar help dosyasında bile ^1/2 olarak kullanın yazmışlar. Quote Link to comment Share on other sites More sharing options...
Administrator sk8er_boi Posted April 2, 2012 Administrator Share Posted April 2, 2012 _SaclariniYolGetir fonksiyonunu da bekliyoruz moderatör kardeş. 1 Quote Link to comment Share on other sites More sharing options...
blue_life Posted April 2, 2012 Share Posted April 2, 2012 (edited) Açıkçası çok fazla kullanmadığımız komutlar. StringRegExp ve StringRegExpReplace için basit bir örnek verelim. Ama gerçekten bu komutların çok geniş bir kullanım yelpazesi vardır. [codebox]Local $Value = "Selam Millet 1-2-3" ;String içinde rakam varmı bakalım. Olumlu sonuçlar 1 ile döner ;Ayrıntılı bilgi için yardım dosyasına bakınız. MsgBox(64,"StringRegExp",StringRegExp($Value,"[0-9]")) ;String içinde rakam harici bir şey varmı bakalım. Olumlu sonuçlar 1 ile döner MsgBox(64,"StringRegExp",StringRegExp($Value,"[^0-9]")) ;String içinde rakam haricindekinleri silelim MsgBox(64,"StringRegExpReplace",StringRegExpReplace($Value,"[0-9]","")) ;String içindeki rakamları silelim MsgBox(64,"StringRegExpReplace",StringRegExpReplace($Value,"[^0-9]","")) ;A-Z dahil arasındaki büyük harfleri silelim MsgBox(64,"StringRegExpReplace",StringRegExpReplace($Value,"[A-Z]","")) ;Şimdi a-z dahil arasındaki küçük harfleri silelim MsgBox(64,"StringRegExpReplace",StringRegExpReplace($Value,"[a-z]","")) ;Şimdi ise sesli harfleri silelim MsgBox(64,"StringRegExpReplace",StringRegExpReplace($Value,"[aeıioöuüAEIİOÖUÜ]","")) ;Şimdi ise sesli harfler dışındakinleri silelim MsgBox(64,"StringRegExpReplace",StringRegExpReplace($Value,"[^aeıioöuüAEIİOÖUÜ]","")) ;Umarım bu kısım anlaşılmıştır[/codebox] Edited April 2, 2012 by blue_life Quote Link to comment Share on other sites More sharing options...
radyofon Posted April 2, 2012 Share Posted April 2, 2012 (edited) Üstadım buradaki komutların her ikisi de aynı. Galiba bir karışıklık olsa gerek. [code];String içinde rakam varmı bakalım. Olumlu sonuçlar 1 ile döner;Ayrıntılı bilgi için yardım dosyasına bakınız. MsgBox(64,"StringRegExp",StringRegExp($Value,"[1-9]")) ;String içinde rakam harici bir şey varmı bakalım. Olumlu sonuçlar 1 ile döner MsgBox(64,"StringRegExp",StringRegExp($Value,"[1-9]"))[/code] Edited April 2, 2012 by blue_life Quote Link to comment Share on other sites More sharing options...
blue_life Posted April 2, 2012 Share Posted April 2, 2012 @radyofon Evet haklısın. arada ufak bir karakter hayati önem taşıyabiliyor burda olduğu gibi. Neyse ilgili kısmı düzeltelim. 0-9 kısaca 0123456789 anlamını taşımaktadır. A-Z ise kendileriyle birlikte arasındaki ingilizce harlfer. Tabi tek tek karakterleride yazabiliriz. O zaman daha uzun bir kodumuz olacak. Ayrıca bu komutlardaki string büyük ve küçük harlere de farklı olabiliyor. Quote Link to comment Share on other sites More sharing options...
radyofon Posted April 2, 2012 Share Posted April 2, 2012 Üstadım O zaman A-Z yazdığımız gibi ayrıca da a-z yamamız gerekecek demektir. Tabii ki yanlış anlamadıysam. Quote Link to comment Share on other sites More sharing options...
blue_life Posted April 2, 2012 Share Posted April 2, 2012 (edited) Kısaca ne aradığına bağlı. Misal sen bir text verip, içinde neyi arayacağını söyle ve sana örnek verelim. Ben bu komutlar için çok basit bir örnek vermeye çalıştım. Aslında nadir kullandığım bir komut. Diğer string komutlarıyla da bu komtuların yapabildiği yapılabilir ama diğerinde çok uzun bir kod yazarken bunda kısaca bir kod işimizi görebiliyor. Ben genelde replace ve içerikte bir şey araken kullanıyorum. Msail uzak ipmizi basit bir yol ile alalım [code]Global $UzakIP Global $InetRead = InetRead("http://www.cmyip.com",1) If @error = 0 Then $UzakIP = StringRegExp(BinaryToString($InetRead), '((?:\d+)(?:\.\d+){3})', 3) If IsArray($UzakIP) = 1 Then MsgBox(64,"Ip adresim",$UzakIP[0]) EndIf[/code] Edit:Ben uyku moduna geçiyorum... Kısaca bu komutlar çok işlevzel ama anlamak için çok kurcalamak gerekli. Ben ihtiyacım olduğunda karıştırarak ihtiyacımı giderebiliyorum. Aslında böyle basit örneklerle ilgili bir konu açıp bir toparlama yapsak fena olmaz. Çalışmalarınızda başarılar dilerim, kolay gelsin arkadaşlar... Edited April 2, 2012 by blue_life Quote Link to comment Share on other sites More sharing options...
blackman12 Posted April 7, 2012 Author Share Posted April 7, 2012 Fonksiyonları güncelledim, artık array şeklinde de dönüş alabiliyorsunuz. Quote Link to comment Share on other sites More sharing options...
Bultar Posted April 7, 2012 Share Posted April 7, 2012 Bunlara harcadığınız zamanı C# a yada ne bileyim C#.NET e ayırsaydınız şimdiye işlevsel programlar yazıyor olurdunuz. Quote Link to comment Share on other sites More sharing options...
Administrator sk8er_boi Posted April 7, 2012 Administrator Share Posted April 7, 2012 [quote name='Bultar' date='07 April 2012 - 18:06 ' timestamp='1333811204' post='1182772'] Bunlara harcadığınız zamanı C# a yada ne bileyim C#.NET e ayırsaydınız şimdiye işlevsel programlar yazıyor olurdunuz. [/quote] İşlevsellik göreceli bir kavramdır. Toplam 3mb tutmayan bir hızlı yazılım geliştirme ortamının yararlarını anlatmaya gerek yok. Platform seçimi, bir işi en efektif şekilde halletmek üstüne olmalıdır. Quote Link to comment Share on other sites More sharing options...
blackman12 Posted April 7, 2012 Author Share Posted April 7, 2012 Bana göre programlamada kullandığınız dilden daha önemli şeyler var. Ve bunların en başında programlama mantığını bilmek geliyor. Bende mantığımı geliştiriyorum bu ufak scriptlerle. Ayrıca AutoIT'de PNG ile gui dizayn eden adam ilerde uzaya füze bile fırlatabilirmiş onu keşfettim Quote Link to comment Share on other sites More sharing options...
asmazh Posted April 30, 2012 Share Posted April 30, 2012 (edited) Sayın Hocalarım, "ByRef"in bir fonksiyondaki görevi tam olarak nedir?[code] Func _NewState(ByRef $Hwnd, $Misal = "") EndFunc [/code] Misal, ByRef, buradaki $Hwnd değişkenine nasıl bir işlev veriyor? Edited April 30, 2012 by asmazh Quote Link to comment Share on other sites More sharing options...
blue_life Posted April 30, 2012 Share Posted April 30, 2012 @asmazh Byref için basit bir örnek verelim... Local $Selam = "Selam Millet!" _Test($Selam) MsgBox(64,"",$Selam) Func _Test(ByRef $HIM) $HIM &= @CRLF & "Bu gün nasılsınız?" EndFunc 1 Quote Link to comment Share on other sites More sharing options...
blackman12 Posted April 30, 2012 Author Share Posted April 30, 2012 Yani fonksiyona daha önceden tanımlanmış bir değişken gönderecekseniz byrefi kullanabilirsiniz ama bu zorunlu değildir değişkenlerin hafızada kapladığı alanı optimize etmek için kullanılır. Blue_Life ın verdiği örnekte _test fonksiyonunu _Test("Selam Millet") şeklinde kullanıcaksak byref yazmamak lazım. Quote Link to comment Share on other sites More sharing options...
MostWanted Posted April 30, 2012 Share Posted April 30, 2012 Zorunlu değil diyen arkadaşlara bakmayın C dersinde canınızı okurlar bu yüzden ama tabi size gerek yok Quote Link to comment Share on other sites More sharing options...
blackman12 Posted April 30, 2012 Author Share Posted April 30, 2012 Bunu diyen adam nerde ne kadar kütüphane dosyası varsa include eder. Quote Link to comment Share on other sites More sharing options...
MostWanted Posted April 30, 2012 Share Posted April 30, 2012 (edited) Ve bunu diyen adam da compiler ın include dosyasında sadece gerekli yeri aldığını bilmez.En azından C de öyle ve autoit de c tabanlı olduğuna göre susuyorum. Edited April 30, 2012 by MostWanted Quote Link to comment Share on other sites More sharing options...
SimpsoN_Bart Posted April 30, 2012 Share Posted April 30, 2012 [b]Kütüphane include edince bütün kütüphane dahil olmuyor mu? [img]http://www.tnctr.com/public/style_emoticons/default/huh.gif[/img] En azından ben öyle biliyorum. [/b] Quote Link to comment Share on other sites More sharing options...
blackman12 Posted April 30, 2012 Author Share Posted April 30, 2012 Yok öyle bişi en azından autoitte şimdi c öğreniyo ya artistlik taslıyor neyse konu başlığını autoit genel diye değiştirim isterseniz hı? fonksiyonlar hariç herşeyi sordunuz yahu Quote Link to comment Share on other sites More sharing options...
MostWanted Posted April 30, 2012 Share Posted April 30, 2012 Aslında autoit yapımcısına bunu sormak lazım. Quote Link to comment Share on other sites More sharing options...
isimsiz2 Posted January 19, 2014 Share Posted January 19, 2014 @asmazh Byref için basit bir örnek verelim... Local $Selam = "Selam Millet!" _Test($Selam) MsgBox(64,"",$Selam) Func _Test(ByRef $HIM) $HIM &= @CRLF & "Bu gün nasılsınız?" EndFunc Yani byref func dışındaki değişkeni func ile değiştirmemizi sağlıyor byref yazmayınca sadece selam millet diyor. byref varken dim, local yada global yazınca error veriyor "&=" ifadesini "=" yapsakta gene error veriyor. Byrefin görevi sadece bu mu yoksa başka bir işede yarıyor mu? Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.