26 Ekim 2010 Salı

JavaScript'te trim fonksiyonunu kullanmak

Görevi, stringin baş ve sonundaki boşlukları temizlemekten ibaret olsa da pek çok programlama dilinin hayat kurtaran fonksiyonlarından biridir trim(). Ne yazık ki JavaScript'te bu fonksiyon bulunmuyor. Biz bu yazıda JavaScript'e bu fonksiyonu ekleyeceğiz.

I.Yöntem

String.prototype.trim = function() {
    s = this.replace(/^\s+/, "");
    return s.replace(/\s+$/, "");
};

II.Yöntem

String.prototype.trim = function() {
      return this.replace(/^\s+|\s+$/g, "");
};

Her iki fonksiyonu da "  sağ ve soldaki boşluklar silinecek   ".trim() şeklinde kullanabiliriz.

.Net Framework Nimetlerinden Zip Ve UnZip


static void Main(string[] args)
        {
            #region Zip
            Console.Write("Ziplenmesini istediğiniz klasörün yolunu giriniz :");
            string fileToZip = Console.ReadLine();
            Console.Write("Oluşacak zip dosyasının adını tam yol ile belirtin :");
            string zipName = Console.ReadLine();

            List<string> fileNames = new List<string>();
            foreach (string f in Directory.GetFiles(fileToZip))
            {
                fileNames.Add(Path.GetFileName(f));
            }


            try
            {
                ZipFileCompressor sCompressor = new ZipFileCompressor(zipName, fileToZip, fileNames.ToArray());
                Process.Start(zipName);
            }
            catch
            {
                Console.WriteLine("Zip oluşturulamadı!");
            }
            #endregion
            //#############################################
            #region UnZip
            Console.Write("Açılmasını istediğiniz zip dosyasının tam yolunu giriniz :");
            string zipFile = Console.ReadLine();
            Console.Write("Zip içindeki dosyaların açılacağı dosya yolunu giriniz :");
            string decompFile = Console.ReadLine();
            ZipFileDecompressor sDecompressor = new ZipFileDecompressor(zipFile);
            try
            {
                sDecompressor.UncompressToFolder(decompFile);
                Process.Start(decompFile);
            }
            catch
            {
                Console.WriteLine("Zip açılamadı!");
            }
            #endregion
        }

Textarea MaxLength sorunu

Asp.Net sunucu kontrollerinden TextBox kontrolünü TextMode="Multiline" özelliği ile kullanıldığında MaxLength özelliği çalışmamaktadır. Çözüm için alternatif yöntemler bulmak durumundayız
İlk çözüm yine sunucu kontrollerinden CustomValidator ile olacak.

<asp:TextBox ID="Mesaj" runat="server TextMode="MultiLine" Columns="40" Rows="6" />
<asp:CustomValidator ID="CustomValid" runat="server" ClientValidationFunction"Max400"
ControlValidate="Mesajımız"
ErrorMessage="En fazla 400 karakter olmalıdır."/>

<script type="text/javascript">
function Max400(source,arguments){
if(arguments.Value.length<=400)
   arguments.IsValid=true;
else
arguments.IsValid=false;
}
</script>

System.Net.NetworkInformation Ping Sınıfı İle Ping İşlemi

Tabi bunun kısayolunu bat dosyasına da yazdırıp yapabilirsiniz fakat böyleside makbul olur kanımca :)

class Program
    {
        static void Main(string[] args)
        {
            Console.Title = "System.Net.NetworkInformation Ping Sınıfı İle Ping İşlemi";
            Basla();
        }

        private static void Basla()
        {
            Ping ping = new Ping();
            PingReply pr = ping.Send("http://fatihsahinbas.blogspot.com");
            Console.Write("Reply from {0} : bytes={1} time={2}ms TTL={3}",
                         pr.Address,
                         pr.Buffer.Length.ToString(),
                         pr.RoundtripTime.ToString(),
                         pr.Options.Ttl.ToString());
            Console.ReadKey();
        }
    }

SiteMap Url İçine target="_blank" eklemek

Site içinde kullanacağınız SiteMap' e tıklandığında Url'in yeni sayfada açılması için, ItemCreated

protected void SiteMapPath1_ItemCreated(object sender, SiteMapNodeItemEventArgs e)
{
   if (e.Item.Controls[0] is HyperLink)
      (e.Item.Controls[0] as HyperLink).Attributes.Add("target", "blank");
}

Hafta Sonu Gün Sayısı

İki tarih arasında ki hafta sonu gün sayısı kaç adettir?

DateTime dt = DateTime.Now;
DateTime dt2 = DateTime.Now.AddDays(19);
TimeSpan sp = dt2 - dt;
int counter = 0;
for (int i = 0; i < (int)sp.TotalDays; i++)
{
DateTime t= dt.AddDays(i);
if (t.DayOfWeek == DayOfWeek.Sunday || t.DayOfWeek == DayOfWeek.Saturday)
counter++;
}
MessageBox.Show(counter.ToString());

C#, Clr C++ ve Native C++

C# bilmek C++ öğrenmek için bir avantaj olabilir mi yada tam tersi.


//C#
int[] sayilar = new int[6];
Random rnd = new Random();
int index = 0;
while (index < 6)
{
int sayi = rnd.Next(1, 50);
if (Array.IndexOf(sayilar, sayi) == -1)
sayilar[index++] = sayi;
}
Array.Sort(sayilar);

//CLR C++
array<int>^ sayilar = gcnew array<int>(6);
Random^ rnd = gcnew Random();
int index = 0;
while(index < 6)
{
int sayi = rnd->Next(1,50);
if(Array::IndexOf(sayilar,sayi) == -1)
sayilar[index++] = sayi;
}
Array::Sort(sayilar);

//Native C++
#include "stdafx.h"#include "iostream"#include "Shlwapi.h"#include "windows.h"using namespace std;

int myRandom();
int IndexOf(int dizi[],int eleman);
void Sort(int dizi[]);

int _tmain(int argc, _TCHAR* argv[])
{
int sayilar[6];
int index = 0;

while(index < 6)
{
int sayi = myRandom();
if(IndexOf(sayilar,sayi) == -1)
{
sayilar[index] = sayi;
index++;
}
}

Sort(sayilar);

for(int i = 0;i<6;i++)
cout << sayilar[i] << endl;
return 0;
}

void Sort(int dizi[])
{
for(int i = 0;i<sizeof dizi;i++)
{
int min = dizi[i];
for(int j = i +1;j<sizeof dizi;j++)
{
if(dizi[j] < min)
{
int temp = min;
min = dizi[j];
dizi[j] = temp;
}
dizi[i] = min;
}
}
}

int IndexOf(int dizi[],int eleman)
{
for(int i = 0;i<sizeof dizi;i++)
{
if(dizi[i] == eleman)
return i;
}
return -1;
}

int myRandom()
{
Sleep(100);
DWORD dwTick = GetTickCount();
srand(dwTick);
int sayi; do {
sayi = rand() % 50;
}
while(sayi == 0);

return sayi;
}