7 Haziran 2015 Pazar

C# rastgele (random) sayı üretmek

Merhaba arkadaşlar.

C# programlama dilini kullanan arkadaşlar için bazen bazı projelerde rastgele sayılar üretmek gerekebilir. Örneğin bir desktop ortamında yada web ortamında(asp.net) c# temelli geliştirmiş olduğunuz bir sisteminiz var. Bu sistemde de mevcut kullanıcılarınız var. Şimdi kullanıcılarınızı tanımak için bir foto yüklemesi yapmak ve böylelikle hangi fotonun hangi kullanıcıya da ait olduğunu öğrenmek istiyorsunuz. Buraya kadar her şey normal. Şimdi gelelim ikinci senaryoya her kullanıcının malum bir adet resmi olacak siz normal yollarla yükle yaparsanız fotoğrafın orjinal ismine denk gelen başka bir resmi önceden yükledi iseniz otomatik olarak iki kullanıcın resmi aynı olacak. Peki ne yapacağız. Birinci adım her resme özel bir isim vermek.(tabi birazda önceki resimlerin isimlerini hatırlamanız gerekecek.)
İkinci adım ise rastgele sayılar ile benzersiz isimler üretmek. Bunun için ne yapmalıyız.

Bunun için çok basit bir kod paylaşacağım.

Random rnd = new Random(); // Random metodunu çağırıyoruz
string rastgeleSayi = rnd.Next(100000000, 999999999).ToString(); 
// burada ise 100 milyon ile 999 milyon arasında rastgele sayılarımızı almış bulunmaktayız.
// buda yaklaşık 9 farklı sayı demek oluyor.

artık resminizin uzantısı alıp elde etmiş olduğunuz yeni veri ile birleştirirseniz, benzersiz resim yükleme işlemini gerçekleştirebilirsiniz.

faydalı olması dileğiyle


GUID ile rasgele metin oluşturma

Merhaba arkadaşlar.
Bildiğiniz gibi GuID global olarak benzersiz ıd bilgisi demektir. Yani dünya çapında aynı id bilgisine sahip kayıt alamaz ve ürettiğiniz her guid size özel olur.
Peki biz bu GUID bilgisini nasıl oluşturabiliriz.
GUID için önce c# tabanlı bir proje oluşturuyoruz.
Sonra ;
ile benzersiz kimliğimizi oluşturmuş oluyoruz. Bu kodu çalıştırdığınızda aşağıdakilerine benzer 32 bit uzunluğunda bilgiler elde edersiniz.

Ayrıca: ToString() metodunu kullanarak (“N”, “D”, “B”, “P”) çeşitli formlarda bu bilgiyi kullanmak da mümkündür. Örneğin:

Faydalı olması dileğiyle



Alıntı

Asp.Net Html Karakter Temizleme

Merhaba arkadaşlar.
Aramızda asp.net tabanlı web uygulama geliştiren arkadaşlar için örnek html karakterlerini (html kodlarını )temizleme fonksiyonu.


#region HtmlTemizle
        public string HtmlTemizle(string veri)
        {

            string icerik = veri;
            try
            {
                if (string.IsNullOrEmpty(icerik)) { icerik = string.Empty; }
                else {
                    icerik = HttpContext.Current.Server.HtmlDecode(icerik);
                    // tüm tagları temizlemek için aşağıdakini kullanıyoruz
                    icerik = Regex.Replace(icerik, @"<(.|\n)*?>", string.Empty);
                }
                return icerik;
            }
            catch (Exception)
            {

                return string.Empty;
            }
        }
        #endregion



Yukarıda ki fonksiyona string türünden göndermiş olduğunuz yazılarda bulunan tüm html kodlarını temizlemiş olursunuz.


Faydalı olması dileğiyle


Cloud Yazılım

c# form boyutunu sabitlemek

Merhaba arkadaşlar

C# projelerimizde bazen formlarımızı tasarım gereği sabitlemek isteyebiliriz.
Örneğin program sırasında kullanıcı bir bilgi ekledi veya güncelleme yaptı. Bizde bu değişiklik konusunda kullanıcıyı msn tarzı sayfanın sağ alt köşesinde beliren ve sabit olan bir form ile uyarmak istiyoruz. Bunun için yapmamız geren aşağıdaki kod ile formu sayfanın tam sağ alt kösesinde sabit tutmak.

Form_Load olayına

this.Height = 200; // form yüksekliği
this.Width = 200; // form genişliği
this.BorderStyle = FormBorderStyle.None; // form çerçevesi olmayacak
this.Left = Screen.PrimaryScreen.WorkingArea.Right - this.Width; // ekran genişliği
this.Top = Screen.PrimaryScreen.WorkingArea.Bottom - this.Height; // ekranın yüksekliği
// ekran genişlik ve yüksekliklerinden form genişlik ve yüksekliğini çıkarırsak
// ekranın sağ alt köşesini bulmuş oluruz


yukarıda ki kodları yazmamız yeterli olacaktır.

Bunun içinde örneğin iki form oluşturup
ilk formda bir buton ekleyip butona çift tıkladığımız zaman

Form2 frm2 = new Form2();
frm2.Show()


ile form2 penceresini açabiliriz. Form2 load olayınada en üstteki kod bloğunu eklediğinizde tam anlamı ile istediğiniz olacaktır.

Faydalı olması dileğiyle

c# form kontrol düğmelerini gizlemek kaldırmak

Merhaba arkadaşlar.

C# projelerimizde bazen pencerede bulunan kontrol tuşlarını (tabiri caiz ise üst üç tuşları) kapatmak onun yerine de programın belirli bölgelerine bu kontrol tuşlarını kendimiz eklemek isteyebiliriz. Fakat control tuşlarını kapatırken de pencere başlık olanın kalmasını istediğimizde yapmamız gereken;

Formu seçip, Properties penceresinden ControlBox özelliğini  “False” olarak seçmek istediğimizi yapmak için yeterli olacaktır.


Faydalı olması dileğiyle

cloud yazılım

Visual studio 2013 to 2010

Merhaba arkadaşlar.

Visual studio 2013 ile oluşturduğunuz projeler örneğin 2010 ile açılmaz. Daha doğrusu bir üst versiyonda oluşturulan programlar bir alt versiyonda açılmaz. Fakat visual studio da projelerimizi alt versiyonlarda açmak mümkün.

Bunun için öncelikle vs.2013 ile projeyi oluşturduğumuz dizine gidip, örneğin ;

 Odev.sln  dosyası olsun.

Bu dosyayı notepad++ ve ya benzeri bir editör programı ile açıp

Format Version 12.00

yazan yerde ki versiyon numarasını 

11.00

olarak değiştirip kaydediyoruz. Sonrasında ise projemiz visual studio 2010 da çalışmaya hazır.


Faydalı olması dileğiyle

cloud yazılım

C# exe dosyasının çalıştığı dizini öğrenme

Merhaba arkadaşlar.
Bir çoğumuz c# da form pencereleri oluşturmuş hatta uygulama geliştirmişizdir. Ve bazen öyle bir an olmuştur ki oluşturmuş olduğunun .exe dosyasının çalıştığı dizinin yolunu öğrenmek gerekmiştir.
Örneğin : C# projenizde MsSql yerine Firebird veritabanını kullanmak istediniz ve veritabanıda standart olarak exe dosyasının yanında olacak. Yani müşteri programı C sürücüsüne değilde D sürücüsüne kurdu sonrada vazgeçti kurduğu programın dosyalarını E sürücüsüne taşıdı.
Peki şimdi ne olacak. İşte tam bu noktada ;

 Directory.GetParent(Application.ExecutablePath)

fonksiyonu yardımımıza yetişiyor. Peki bu fonksiyonu nasıl kullanacağız.
Fonsiyonu kullanmak için ilk önce

using System.IO;
Kütüphanesini projemizin en üst kısmına ekliyoruz
Sonrasında ise

string dosyaYolu = Directory.GetParent(Application.ExecutablePath).toString(); 

şeklinde dosyanın daha doğrusu çalışan exe nin dizinini öğrenebiliyoruz. Bu bilgi ile de veritabanımıza artık ulaşabiliriz.

Faydalı olması dileğiyle…

Php Api ile Hava Durumu Öğrenme

Merhaba arkadaşlar bugün sizlere php ile api key kullanarak kolay bir şekilde hava durumu almayı anlatacağız. Bunun için php ile kod yazmadan önce api key oluşturacağımız siteye gidip üye olmamız gerekmektedir.

http://www.worldweatheronline.com/api/compare.aspx

adresine tıklıyoruz ve buradan “free api” başlığı altında en altta bulunan “sing up now free api” butonuna tıklıyoruz. karşımıza gelen formda email hesabımızı ve şifremizi bunun yanında kullanacağımız ismi giriyoruz. Hemen ardından belirttiğimiz email adresine giriş yaparak gelen mailde bulunan onay linkine tıklayarak hesabımızı onaylıyoruz. Hesap onaylandıktan sonra
panelde Free-Weather-API-V2 başlığı altında Generate new api key linkine tıklayarak kendimize bir api oluşturuyoruz. Burada bizden api için uygulama başlığı yazmamızı isteğe bağlı olarak da yayınlanacağı site ve kısa bilgi istiyor isterseniz bu alanları boş geçebilirsiniz. Hemen sonrasında ise bize bir adet api key oluşturup bizi tekrardan

https://developer.worldweatheronline.com/

adresine yönlendiriyor. Bu sefer karşımıza belirlediğimiz uygulama ismi ile hemen yanında uzunca bir api key (api anahtarı) yazısı gösteriliyor.
Buraya kadar tamam ise şimdi hiç lafı uzatmadan php tarafına geçerek küçük bir kod yazalım.

$havaApi   =   file_get_contents("http://api.worldweatheronline.com/free/v2/weather.ashx?q=istanbul&format=json&num_of_days=5&key=Api Key Yazınız");
$_json     =   json_decode($havaApi);


yukarıda ki kodlarda ilk satırda api key bilgisi girerek uzak sunucudan json formatında veri çektik.
ikinci satırda ise elde ettiğimiz json kodlarını decode ederek bir nevi dizi haline getirdik.

şimdi ise elde ettiğimiz bilgileri gösterme zamanı

foreach($_json->data->weather as $havaVeriler){
 echo "Gün : " . $havaVeriler->date ." Derece : " . $havaVeriler->mintempC .'&deg; ile '. $havaVeriler->maxtempC. "&deg;<br>";
} 



Yazmamız gereken tüm kodlar ve adımlar bu kadardı. :D
Ekran Çıktısı

Gun : 2014-12-26 Derece : 10 ° ile 18 °
Gun : 2014-12-27 Derece : 4 ° ile 10 °
Gun : 2014-12-28 Derece : 3 ° ile 11 °
Gun : 2014-12-29 Derece : -4 ° ile 12 °
Gun : 2014-12-30 Derece : 6 ° ile 10 °



Evet anlatacaklarımız, yazacağınız kodlar ve adımlar bu kadardı. Toplam 4 satır kod ile 5 günlük hava durumunu almış olduk.
Not : &deg; ile yazdığım yerler aslında önizlemede °C görünmesi gerekiyordu fakat eklentide sorun olduğundan &deg; ile değiştirmek zorunda kaldım. Sizin uygulamalarınızda bir sorun çıkmadan kullanabilirsiniz.
Tabi bunun yanında bize gelen kodlar bununla sınırlı değil. Örnek olarak elde ettiğiniz json kodunu json viewer ile görüntülerseniz. Hava raporunun saat bazında tahminlerini de bulabileceksiniz. Ama bu hem şu an için gereksiz hemde ekstradan fazla kod ve sunucu yorgunluğu oluşturacaktı. Unutmadan biz burada derece olarak C cinsinden işlem yaptık siz isterseniz

 mintempF ve maxtempF

ile Fahrenayt olarak da bilgi çekebilirsiniz.
Bunun yanında eğer 5 günlük hava tahmini yetmez derseniz belli bir ücret ödeyerek premium hesap açabilir ve daha detaylı bilgi edebilirsiniz. Ayrıca free olarak oluşturduğumuz hesap ile günlük 12.000 istek gerçekleştirebiliyoruz ki bu zaten bir çok işlem için fazlası ile yeterli. Tabi bunu aşmanında çeşitli yolları yok değil. En basitinden çektiğiniz json verilerini cache dosyasında tutup her saat başı yada belirli zamanlarda bu dosyayı güncelleyebilirsiniz ve bu dosyadan bilgileri çekersiniz. Buda saat başı aldığınız verileri cacheleyerek günde sadece 24 istek yaparsınız ve 11.976 istek boşta kalır


:D

Faydalı olması dileğiyle.

Blog

Cloud Yazılım