Spin (Çevirme – Değiştirme) Fonksiyonu
Programlamada genellikle bir kelimenin eş anlamlısını bir metin içerisinde birden fazla yazılmasına olanak sağlayan sisteme spin deniliyor. Spin olayının Türkçe karşılığına kısaca çevirme veya değiştirme diyebiliriz.
Spin sistemini metin (text) girişi yaptığınız heryerde kullanabilirsiniz. Hatta yazılarınızı özgünleştirmede bile kullanabilirsiniz.
Spin sistemi genellikle eş anlamlı kelimelerin süslü parantez “{}” içerisine yazılıp, düz çizgi “|” ile ayrılması ile oluşturuluyor. Örneğin: {selam|slm|merhaba|mrb} gibi..
Spin sistemine örnek olarak verecek olursam;
– Merhaba, adım Tolga. cümlesini spin sistemi ile çok farklı kombinasyonlarda yazabiliriz. Aklıma gelen kombinasyonlar;
– Selam, benim ismim Tolga.
– Selamlar, ismim Tolga.
– Merhaba, benim adım Tolga.
– Slm, adım Tolga
…. gibi uzar gider.
Bunları defalarca yazmak yerine spin sistemi ile tek girişte farklı kombinasyonlarda yazabiliriz. Aynı örnekten devam edecek olursam;
{Merhaba|Selam|Slm|Mrb|Selamlar|Merhabalar}, {benim adım|benim ismim|adım|ismim} Tolga.
şeklinde yazmamız spin sistemi ile bunu yukarıdaki örnekler gibi çok farklı kombinasyonlarda yazmamıza olanak sağlar.
Projelerinizde kullanabileceğiniz, benimde kendi projelerimde kullandığım fonksiyonu sizlerle paylaşmak istedim. Aşağıdaki fonksiyonları direkt projenize ekleyerek kullanabilirsiniz.
Vb.Net Fonksiyonu;
Function spinYap(cumle As String) Dim randSayi As New Random Dim yazi As String = cumle Dim re As Regex = New Regex("{(.*?)}", RegexOptions.IgnoreCase Or RegexOptions.IgnorePatternWhitespace) Dim mc As MatchCollection = re.Matches(yazi) Dim mIdx As Integer = 0 Dim spinKelime(UBound(Split(yazi, "{"))) As String For Each m As Match In mc yazi = Replace(yazi, m.Groups(0).Value, "%" & mIdx & "%") Dim spinler As String = m.Groups(1).Value Dim spinArray As Array = Split(spinler, "|") Dim os As Integer = randSayi.Next(0, UBound(spinArray) + 1) spinKelime(mIdx) = spinArray(os) yazi = Replace(yazi, "%" & mIdx & "%", spinKelime(mIdx)) mIdx = mIdx + 1 Next Return yazi End Function
C# Fonksiyonu;
public object spinYap(string cumle) { Random randSayi = new Random(); string yazi = cumle; Regex re = new Regex("{(.*?)}", RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace); MatchCollection mc = re.Matches(yazi); int mIdx = 0; string[] spinKelime = new string[Information.UBound(Strings.Split(yazi, "{")) + 1]; foreach (Match m in mc) { yazi = Strings.Replace(yazi, m.Groups(0).Value, "%" + mIdx + "%"); string spinler = m.Groups(1).Value; Array spinArray = Strings.Split(spinler, "|"); int os = randSayi.Next(0, Information.UBound(spinArray) + 1); spinKelime(mIdx) = spinArray(os); yazi = Strings.Replace(yazi, "%" + mIdx + "%", spinKelime(mIdx)); mIdx = mIdx + 1; } return yazi; }
Yukarıda verdiğim hazır fonksiyonlar projelerinizde spin sistemini kullanmanız için gerekli tek şey.
{projelerinizde|yazılımlarınızda|programlarınızda} bol şans :)
Deneme • 10 Mart 2018
deniyorum oysaki varım