C# Basit bir uygulama yazmak

Gokrtl

Gökhan Kartal (TeknoDay)
Staff member
Katılım
27 Şubat 2019
Mesajlar
11,210
Hazır Audacity'e Asio desteği ekleyebilmek için "visual studio" indirmişken Benim flight simulatörüm için kullanışlı bir kopyalama programı yazmaya karar verdim.
Her ne kadar PHP'ye birazcık hakimsem de C# diline hiç hakim değilim. Bu yüzden youtube desteği ile bir adım atarak başladım.
İlk yazdığım program bir konsol programı ve hiçte kullanışlı değil.
Daha önceden adı sanı belli olan bir "txt" dosyasını başka bir klasöre taşıyabiliyor sadece. Ama yine de ilk adım için fena değil :D
Şimdi sizlere yazdığım ilk programımdan birkaç resim ekleyeyim.

Öncelikle Kaynak Kodlarımızı Verelim
kaynak kodlar.png


İlk Programım

ilk program.png


Kaynak Dosya
kaynak dosya.png


Hedef Dosya
hedef dosya.png


Programı İlk Çalıştırma
ilk çalıştırma.png


Ve dosya taşındı
dosya taşındı.png


Şimdi İkinci kez çalıştırıp kaynak klasörde dosya olup olmadığını kontrol ediyoruz. Ve bir önceki çalıştırmada dosyayı taşıdığımız için sonuç beklediğimiz gibi.

dosya yok.png


Ve kaynak klasöre aynı dosyadan bir tane daha oluşturup üçüncü kez çalıştırıyoruz ve hedef klasörde aynı dosya var ise ne yapacağını görüyoruz
dosya zaten var.png
 
Bir sonraki çalışmamda öncelikle konsol yerine bir pencere kullanacağım. Sonrasında ise kaynak dosyayı kullanıcının kendisi seçebileceği kodu bulacağım ve dosyanın taşınacağı hedef dosyayı kullanıcının seçebilmesini sağlayacağım.
 
Programımızın arayüzü hazır. Akşama da arka planda kod yapısını yazmayı düşünüyorum.

win arayüzü.png
 
Programlamaya çok hızlı bir başlangıç yaptın Gökhan :D

Ama ilk programlama dili olarak C# yerine python öğrensen bence daha iyi olur. Günümüzün en modern ve kısa zamanda kapsamlı bir program ortaya çıkarılabilen bir programlama dili. Tüm mühendislik disiplinlerinde çok yaygın kullanımı var.
 
Programlamaya çok hızlı bir başlangıç yaptın Gökhan :D

Ama ilk programlama dili olarak C# yerine python öğrensen bence daha iyi olur. Günümüzün en modern ve kısa zamanda kapsamlı bir program ortaya çıkarılabilen bir programlama dili. Tüm mühendislik disiplinlerinde çok yaygın kullanımı var.
Hızılı giden atla ilgili bir atasözümüz var abi bizim :katil1:
Browse butonu ile dosya yolunu seçip değişkene atıyorum ama o değişkeni "Kopyala" butonunda kullanamıyorum.
Nette de pek ayrıntı yok C# ile ilgili.
 
Hızılı giden atla ilgili bir atasözümüz var abi bizim :katil1:
Browse butonu ile dosya yolunu seçip değişkene atıyorum ama o değişkeni "Kopyala" butonunda kullanamıyorum.
Nette de pek ayrıntı yok C# ile ilgili.

Valla Windows grafik arayüz teknolojilerini öğrenmek bence değerli bir bilgi değil. O bilgi sadece Microsoft Windows'a özgü olacak ve aynı zaman Windows'un spesifik bir grafik arayüzü versiyonu için geçerli olacak. Başka hiçbir alanda işe yaramayacak. İlla grafik arayüzü öğrenmek istiyorsan, endüstri standardı olan wxWidgets (Audacity'den hatırla) veya QT öğrenmek çok daha faydalı, çünkü bu arayüzler neredeyse bütün işletim sistemlerinde destekleniyor.

Onun yerine C# dilinin özellikleri, teknikleri, ve algoritmalar üzerine yoğunlaşmak ve komut satırı programlarıyla bunları öğrenmek daha mantıklı. Grafik arayüzü sadece programın kullanıcıya gözüken yüzüdür, esas olan programın yaptığı iştir.
 
Valla Windows grafik arayüz teknolojilerini öğrenmek bence değerli bir bilgi değil. O bilgi sadece Microsoft Windows'a özgü olacak ve aynı zaman Windows'un spesifik bir grafik arayüzü versiyonu için geçerli olacak. Başka hiçbir alanda işe yaramayacak. İlla grafik arayüzü öğrenmek istiyorsan, endüstri standardı olan wxWidgets (Audacity'den hatırla) veya QT öğrenmek çok daha faydalı, çünkü bu arayüzler neredeyse bütün işletim sistemlerinde destekleniyor.

Onun yerine C# dilinin özellikleri, teknikleri, ve algoritmalar üzerine yoğunlaşmak ve komut satırı programlarıyla bunları öğrenmek daha mantıklı. Grafik arayüzü sadece programın kullanıcıya gözüken yüzüdür, esas olan programın yaptığı iştir.
Abi PHP'yi kurcalamayı neden bıraktım biliyor musun?
Tam böyle heveslenmişim harıl harıl çalışıyorum. Ne bulsam okuyorum, ne görsem yapıyorum filan. Bir gün geldi bir şey yapmak istedim. O java ile olur dediler, başka bir gün başka bir şey lazım oldu. Onun için css bilmen lazım dediler. Böyle böyle uzayıp gitmeye başlayınca anladım ki bütün dilleri öğrenmeden sadece php bir halta yaramıyor. Eee bende de bütün dilleri öğrenecek kapasite, daha da önemlisi heves olmadığından bıraktım kurcalamayı. Yani demek istediğim bunların hepsi birbirine bağlı. Birini bilip diğerini hiç bilmiyorsan işin yaş. Zaten adamlar bir eleman arıyor, yazdıkları özelliklere sahip adam zaten kendi şirketini kurar. Bir tane adam alalım herşeyi bilsin istiyorlar. :D

Ben hep işimi görecek kadar kurcalamayı seviyorum bunları :D
 
Çok önemli bir kısmı hallettim. Şimdi sadece "Array" yaparak çoklu seçimi devreye sokmalıyım.

taşıma ok.png


Azimli Fare Betonu Delermiş :katil1:

azimli fare.png
 
Son düzenleme:
@Gokrtl PHP'nin sınırları olduğu doğru da yapamadığın şey neydi çok merak ettim. :D
 
@Gokrtl PHP'nin sınırları olduğu doğru da yapamadığın şey neydi çok merak ettim. :D
Şimdi hatırlamıyorum eski zaman. Login penceresi yapmak istiyordum css lazım oluyordu, saatle mi ilgiliydi hatırlamıyorum ajax filan lazım olmuştu. Sonra bu mouse olayları filan vardı oncklick() gibi oda javascript kodları ile yapılıyordu galiba. Hepsini nasıl öğreneyim diye sinirlenip kapatmıştım.
 
Şunun Doğru yazılışı nasıldır? Evirdim çevirdim kabul ettiremedim :D

C#:
if (System.IO.File.Exists(kaynak && hedef))
 
Şunun Doğru yazılışı nasıldır? Evirdim çevirdim kabul ettiremedim :D

C#:
if (System.IO.File.Exists(kaynak && hedef))

Şunu dene:

C#:
if (System.IO.File.Exists(kaynak) && System.IO.File.Exists(hedef))
 
Veee FlyCopy Karşınızda.
Programımın İlk Versiyonunu deneyip fikirlerinizi söylerseniz sevinirim.
Kurulum filan gerektirmez. Sadece özel bir dosya türünü kopyalayacağı için önünüze geleni kopyalayamazsınız.
Sizin için klasör içine "deneme.rte" isminde bir dosya bıraktım. O dosyayı farklı bir klasöre kopyalayarak deneme yapabilirsiniz.
Son Düzenleme 22.02.2020 19:32

Adsız.png
 

Ekler

  • FlyCopy V1.zip
    120.6 KB · Görüntüleme: 206
Son düzenleme:
Burada yapmak istediğim;
4 basamaklı bir sayım var. Üçüncü basamağın değerini duruma göre değiştirmek istiyorum.
label1 hanesinde iki basamaklı rakam varsa üçüncü butona bastığımda, üçüncü basamağın değerini 00 yapmak istiyorum.
Yok eğer bastığım buton 1, 2 veya 4.sıraya denk geliyorsa o zaman kendi default değerini yazmalı.
Ama sanırım "substring" yanlış ifade.

C#:
if (radioButton1.Checked == true) //Radio buton1 seçili ise
            {
                if (label1.Text == label1.Text.Substring(0, 2)) //label1 eşitse çift basamaklı sayıya
                {
                    label1.Text += button2.Text = "00"; //buton2'nin değerini 00 yap
                }
                else
                {
                    label1.Text += button2.Text; // Çift basamaklı sayıya eşit değilse o zaman butonun kendi değerini ekle label1'e
                }
            }
 
Son düzenleme:
Burada yapmak istediğim;
4 basamaklı bir sayım var. Üçüncü basamağın değerini duruma göre değiştirmek istiyorum.
label1 hanesinde iki basamaklı rakam varsa üçüncü butona bastığımda, üçüncü basamağın değerini 00 yapmak istiyorum.
Yok eğer bastığım buton 1, 2 veya 4.sıraya denk geliyorsa o zaman kendi default değerini yazmalı.
Ama sanırım "substring" yanlış ifade.

Yapılması gereken işi yazmışsın ama anlamadım bunu :D Amacı belirtirsen belki o amaca ulaşacak bir kod önerebilirim. Mesela amaç bir sayıyı hep aynı sayıda rakam ile mi ifade etmek? 1 yerine 0001, 24 yerine 0024, 306 yerine 0306 gibi mi?
 
Yapılması gereken işi yazmışsın ama anlamadım bunu :D Amacı belirtirsen belki o amaca ulaşacak bir kod önerebilirim. Mesela amaç bir sayıyı hep aynı sayıda rakam ile mi ifade etmek? 1 yerine 0001, 24 yerine 0024, 306 yerine 0306 gibi mi?
Abi üç tane rakamımız var. 123
Bu üç rakamın ilk ikisini direk alıcaz 12
Üçüncü rakam değeri çarpan olacak. Yanı 5 nolu butona bastıysak 10 üzeri 5 çarpan olacak.
Oda eşittir 12 yanına 5 tane sıfır koymak demek.
Totalde ben label1 içine 1200000 yazdırmak istiyorum.
 
Son karakteri şöyle alabilirsin:

Kod:
char son_rakam = label1.Text[label1.Text.Length - 1];

Ama öncelikle label1.Text in boş string olmadığından emin olman lazım, yoksa program Exception ile çöker.
 
Son karakteri şöyle alabilirsin:

Kod:
char son_rakam = label1.Text[label1.Text.Length - 1];

Ama öncelikle label1.Text in boş string olmadığından emin olman lazım, yoksa program Exception ile çöker.
Bu aklımda dursun abi de bizim üçüncü rakam son rakam olmayabilir de. Şimdi düşündüm 4 haneli de olabilir. Hatta tasarıma göre 5 yada 6 hane bile olabilir. Her halukarda ben üçüncü haneyi aradan almalıyım. O zaman hane sayısına göre Length -2, -3 vs şeklinde uzatmalıyım sanırım?
 
Bir de böyle kullanıcıdan veri alan programlarda veriyi iyice kontrol etmen lazım. Kullanıcıların yapabilecekleri hataların haddi hesabı yoktur:

- Boş string gelebilir ()
- Tamamen boşluk karakteri ile dolu string gelebilir ( )
- Rakam dışında karakterlerden oluşan string gelebilir (şemsettin)
- Çince UNICODE karakterleri içeren bir string gelebilir (中央电视台报废设备处理竞价公告)
- Rakam vardır ama başında sonunda hatalı karakter vardır (y23) ( 123) ( 345 ) (12h)
- Fazla veya az rakam vardır (89234234) (2)

Hiçbir zaman adamın temiz bir şekide 105 yazacağını varsayamazsın.
 

Forum istatistikleri

Konular
5,790
Mesajlar
99,025
Üyeler
2,464
Son üye
s4met

Son kaynaklar

Son profil mesajları

cemalettin keçeci wrote on HaydarBaris's profile.
barış kardeşim bende bu sene akıllı denizaltı projesine girdim ve sensörleri arastırıyorum tam olarak hangi sensör ve markaları kullandınız yardımcı olabilir misin?
m.white wrote on Altair's profile.
İyi akşamlar.Arabanız ne marka ve sorunu nedir.Ben araba tamircisi değilim ama tamirden anlarım.
* En mühim ve feyizli vazifelerimiz millî eğitim işleridir. Millî eğitim işlerinde mutlaka muzaffer olmak lâzımdır. Bir milletin hakikî kurtuluşu ancak bu suretle olur. (1922)
Kesici/Spindle hızı hesaplamak için SpreadSheet UDF'leri kullanın, hesap makinesi çok eski kalan bir yöntem :)
Dr. Bülent Başaran,
Elektrik ve Elektronik Mühendisi
Yonga Tasarım Özdevinimcisi
Üç güzel "çocuk" babası
Ortahisar/Ürgüp/Konya/Ankara/Pittsburgh/San Francisco/Atlanta/Alaçatı/Taşucu...

Back
Top