Tolga ŞEN Kişisel Web Sitesi Menu

Yazı Linki:

Spin (Çevirme – Değiştirme) Fonksiyonu

spin

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

    deniyorum oysaki varım

  • Not: Link geçen yorumları onaylamıyorum. Lütfen spamdan uzak durun.