06/24/2005

Soru - Cevap [#1]

Dün, daha önce ASP ile yazmış olduğum bir fonksiyonu C# diline çevirmeye çalışıyordum. Bilindiği üzere C# dilinde veri tanımlamalar, tamamen veri tiplerine göre yapılmaktadır. Bende tam bu nokta üzerinde sorunlar yaşamaktaydım. Fonksiyonu doğru yazdığıma emin olmama rağmen saçma saçma sonuçlar üretiyordu. Sorunun Cevabını ancak bu gün bulabildim.

Soruda Bulunan Kodlar :

ASP
Public Function Encrypt(byVal Value)
Uzunluk = Len(Value) : psy = 1 : Randomize
If (Uzunluk < 5) AND (Uzunluk > 0) Then strRnd = MakeChars(5) Else strRnd = MakeChars(Uzunluk) End If
For psy = 1 To Uzunluk
RndSayi = Chr(int(8 * Rnd) + 49)
Char = Char &"-"& (Asc(Mid(Value,psy,1)) * RndSayi) & RndSayi
Next
Encrypt = "{"& Right(Char,Len(Char)-1) &"-"& strRnd &"}"
End Function

---------------------------------------
C#
private int Asc(char ch)
{
return (int)ch;
}
private char Chr(int i)
{
return Convert.ToChar(i);
}

public string Encrypt(int Value)
{
int Uzunluk = Value.ToString().Length;
int psy = 0;
string strRnd = null;
string Text = null;
char Sayi;
string Char = Value.ToString();

Random rnd = new Random();
if((Uzunluk < 5) && (Uzunluk > 0))
strRnd = MakeChars(5);
else
strRnd = MakeChars(Uzunluk);

for(;psy < Uzunluk; psy++)
{
Sayi = Chr(rnd.Next(49,57));
Text += "-"+ (Asc(Chr(Convert.ToInt32(Char.Substring(psy,1)))) * Sayi) + Sayi.ToString();
}
return "{"+ Text.Substring(1) +"-"+ strRnd +"}";
}


Ve sorunun cevabı;

Chr() ve Asc() fonksiyonlarını iptal ettim.

public string Encrypt(int Value)
{
int Uzunluk = Value.ToString().Length;
string strRnd = null, Text = null, Sayi = null;
string Char = Value.ToString();

Random rnd = new Random();
if((Uzunluk < 5) && (Uzunluk > 0))
strRnd = MakeChars(5);
else
strRnd = MakeChars(Uzunluk);

for(int psy = 0; psy < Uzunluk; psy++)
{
Sayi = Convert.ToChar(rnd.Next(49,57)).ToString();
Text += "-"+ (Encoding.ASCII.GetBytes(Char.Substring(psy,1))[0] * Convert.ToInt32(Sayi)) + Sayi;
}
return "{"+ Text.Substring(1) +"-"+ strRnd +"}";
}



Soruyu Sorduğum Yerler;
» MaxiASP.Net Forumları
» CSharpNedir? Forumları
» Ceviz.Net Forumları
» ANET news'leri (C# Bölümü)

06/21/2005

ASP.NET - Örnekler

Az önce, C# dilinde IsNumeric() için bir fonksiyon var mı diye araştırırken bulduğum, içinde güzel örnekler olan bir site. Bakmanızı tavsiye ederim. (Bu arada olmasaydı kendim yazacaktım. Gerçektende yokmuş ve kendileri yazmış. Bu da beni kısa bir kod yazmaktan kurtardı...)
Buradan buyrun. [ Aspalliance ]

C# - IsNumeric()

public static bool IsNumeric(object value)
{
try
{
Convert.ToDouble(value);
return true;
}
catch
{
return false;
}
}