Bu kodu en kısa nasıl yazarım
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Bu kodu en kısa nasıl yazarım
Merhabalar , siteye yeni üye oldum .Online olarak c# programcısı bir arakdaş ile sıkı bir tartışma içindeyim . Bana şu kodu tek satrıda yazabildiğini fakat Delphide bunun mümkün olmadığını söyledi .Ben olduğuna eminim , neticede Sytem unitini kullanacak.
"bir klasör içinde yer alan dosyalardan adında önce "o" sonra "a" harfi geçen kaç tane var bir saydırayım dedim
C# Kodu ise şöyle :
Console.WriteLine(new DirectoryInfo(@"c:\downloads").GetFiles().Count(f => Regex.IsMatch(System.IO.Path.GetFileName(f.Name), "o.*a")));
Yardımcı olursanız sevinirim .
Kurallar tek komut satırı olmalı , döngü olmamalı.
Teşekkürler.
"bir klasör içinde yer alan dosyalardan adında önce "o" sonra "a" harfi geçen kaç tane var bir saydırayım dedim
C# Kodu ise şöyle :
Console.WriteLine(new DirectoryInfo(@"c:\downloads").GetFiles().Count(f => Regex.IsMatch(System.IO.Path.GetFileName(f.Name), "o.*a")));
Yardımcı olursanız sevinirim .
Kurallar tek komut satırı olmalı , döngü olmamalı.
Teşekkürler.
Re: Bu kodu en kısa nasıl yazarım
bunun için mi siteye üye oldun.
Fonksiyon yazılırak(tabi bunun içinde dögüde olur,değişkende v.s.)
bu kodun yarısından daha kısa bir kod yazılır. sonuçta bu da bir fonksiyon kullanıyor.
Hatta hazır apilerde vardır.
Fonksiyon yazılırak(tabi bunun içinde dögüde olur,değişkende v.s.)
Kod: Tümünü seç
klasordekilerisay(yol,ilkharf,ikiniciharf)
Hatta hazır apilerde vardır.
Bir kelimenin anlamını öğretsen bile yeter..
Re: Bu kodu en kısa nasıl yazarım
Tabiki sadece bunun için üye olmadım.
Kodda önemli olan nokta , prosedür veya fonksiyon ile yazılmaması . Zaten o arkadaşta örnekte API leri kullanıyor. O yüzden bende bunun APIler ile Delphide de olacağını düşünüyorum.
Kodda önemli olan nokta , prosedür veya fonksiyon ile yazılmaması . Zaten o arkadaşta örnekte API leri kullanıyor. O yüzden bende bunun APIler ile Delphide de olacağını düşünüyorum.
Re: Bu kodu en kısa nasıl yazarım
C# dilinin üstün oldugu noktalar var. O komutu delphi de tek satırda yazamazsın. Bir fonksiyon yazman lazım, o fonksiyonda da dogal olarak döngü kullanacaksın. Ayrıca orada bir lambda ifadesi var, delphi de bu tür lambda ifadeleri kullanamıyorsun.
Arkadaşın sanırım şunu demek istemiş, "sistem kütüphanesini kullanan tek satırlık bu programın delphi de karşılıgı yok.
Arkadaşın dogru söylüyor, delphi hız konusunda dogrudan makina dili ürettigi için C# geçebilir, ama bu tür yazımlarda delphinin pek şansı yok.
Arkadaşın sanırım şunu demek istemiş, "sistem kütüphanesini kullanan tek satırlık bu programın delphi de karşılıgı yok.
Arkadaşın dogru söylüyor, delphi hız konusunda dogrudan makina dili ürettigi için C# geçebilir, ama bu tür yazımlarda delphinin pek şansı yok.
Re: Bu kodu en kısa nasıl yazarım
C# ın iyi denmesinin nedeni bu şekilde hazır kütüphanelerin fazla olması dolayısıyla basit ve hızlı çözüm üretmeye yönelik olması...Delphinin kütüphaneside gelişiyor bir çok kullanıcının çoğu hazır fonksiyondan haberi yok önemli olan işi yapabilmek dolayısıyla hız devreye giriyor kullanım açısından ve delphi oldukça hızlı...Eğer hazır fonksiyon yok ise kendiniz yazıp halledersiniz bunlar çok önemli mevzular değil....kullanım yerleri farklı zaten....
Re: Bu kodu en kısa nasıl yazarım
Yanlış anlattım galiba, C# sadece kütüphanelerdeki fonksiyonların fazla olmasıyla degil, ifadeleriyle diger dillere açık üstünlüğü vardır.
Yukarıdaki kodun alındıgı sayfa : http://www.csharpnedir.com/makalegoster.asp?MId=600
Yukarıdaki programı herhangi bir dille bu kadar sade ve kısa yazamazsınız.
Kod: Tümünü seç
using System;
using System.Collections.Generic;
using System.Text;
namespace LINQTest
{
class Program
{
static void Main(string[] args)
{
List<Personel> personeller = new List<Personel>();
personeller.Add(new Personel{Ad="Sefer",No=3});
personeller.Add(new Personel{Ad="Ali",No=6});
personeller.Add(new Personel{Ad="Mehmet",No=2});
personeller.Add(new Personel{Ad="Burak",No=16});
personeller.Add(new Personel{Ad="Oguz",No=10});
//var sonuclar = .. şeklinde de diyebilirdik.
IEnumerable<string> sonuclar = from val in personeller
where val.No > 5
orderby val.Ad
select val.Ad.ToUpper();
foreach (string ad in sonuclar)
{
Console.WriteLine( ad );
}
}
}
public class Personel
{
public string Ad;
public int No;
}
}
Yukarıdaki programı herhangi bir dille bu kadar sade ve kısa yazamazsınız.
Re: Bu kodu en kısa nasıl yazarım
Örnek verdiğin kod benim sitemden alınmış, benim yazdığım bir kod.
http://www.thexpot.net/2007/10/maziye-gittim-soyle-bir/
Zaten yazıda da bunu delphide yapmak için bir ton kod yazmak lazım demiştim. C# kodunun arkasında kocaman bir framework var, delphide öyle bir şey yok ve bu yüzden de delphide kısaca yazılamaması normal. Olay C#'ın güçlü olmasıyla da alakalı değil, aynı kod Ruby veya Python'da da tek ifade olarak yazılabilir. Framework ile alakalı yani
http://www.thexpot.net/2007/10/maziye-gittim-soyle-bir/
Zaten yazıda da bunu delphide yapmak için bir ton kod yazmak lazım demiştim. C# kodunun arkasında kocaman bir framework var, delphide öyle bir şey yok ve bu yüzden de delphide kısaca yazılamaması normal. Olay C#'ın güçlü olmasıyla da alakalı değil, aynı kod Ruby veya Python'da da tek ifade olarak yazılabilir. Framework ile alakalı yani
-
- Üye
- Mesajlar: 163
- Kayıt: 11 Eki 2005 10:44
- İletişim:
Re: Bu kodu en kısa nasıl yazarım
.Net' de en küçük program 25 mb dır.
http://ibrahimcoban.com/
Lazarus, Kol-Ce,Delphi ve C#
Lazarus, Kol-Ce,Delphi ve C#
Re: Bu kodu en kısa nasıl yazarım
s.a.
arkadaşlar birşey sormak istiyorum.
Delphinin hangi sürümünü kullanıyorsunuz?
kullandığınız sürüm çıktığı zaman ortada c# varmı idi?.
son model araba ile yıllardır kullanıdığınız arabayı karşılaştırıp bunda şu yok demek ne kadar mantıklı?
delphinin son sürümünü incelediniz mi?
[url=http://tr.delphipeak.com/tag/tiburon]burda 8/url] @sadettinpolat yeniliklere bir göz atmış.
son model arabanızda ctrl+space yapınca gelen pencerede sıralama yapabiliyormusunuz?
burdan yola çıkarak bizim eski araba daha iyi mi demeliyiz?
belki tek satırda o işlemi yapamayız ama bizim 100 satırda yazacağımız kod o tek satırlık koddan daha hızlı çalışacaktır.(sonuçta o da arka planda bizim 100 satırda yaptığımız işi yapacak). üstelik biz gerçek anlamda kod yazmış olacağız. o hazır bir fonksiyon çağırmış olacak. Elbetteki hazır bir fonksiyonu çağırmak daha kolay vede daha güzel (tabi arkada ne yaptığını biliyorsanız)
amacım birini yerip diğerini övmek değil.
ne yaptığımızı ve nasıl yaptığımızı bilmemiz gerektiğini vurgulamak istedim sadece..
kolay gelsin.
arkadaşlar birşey sormak istiyorum.
Delphinin hangi sürümünü kullanıyorsunuz?
kullandığınız sürüm çıktığı zaman ortada c# varmı idi?.
son model araba ile yıllardır kullanıdığınız arabayı karşılaştırıp bunda şu yok demek ne kadar mantıklı?
delphinin son sürümünü incelediniz mi?
[url=http://tr.delphipeak.com/tag/tiburon]burda 8/url] @sadettinpolat yeniliklere bir göz atmış.
son model arabanızda ctrl+space yapınca gelen pencerede sıralama yapabiliyormusunuz?
burdan yola çıkarak bizim eski araba daha iyi mi demeliyiz?
belki tek satırda o işlemi yapamayız ama bizim 100 satırda yazacağımız kod o tek satırlık koddan daha hızlı çalışacaktır.(sonuçta o da arka planda bizim 100 satırda yaptığımız işi yapacak). üstelik biz gerçek anlamda kod yazmış olacağız. o hazır bir fonksiyon çağırmış olacak. Elbetteki hazır bir fonksiyonu çağırmak daha kolay vede daha güzel (tabi arkada ne yaptığını biliyorsanız)
amacım birini yerip diğerini övmek değil.
ne yaptığımızı ve nasıl yaptığımızı bilmemiz gerektiğini vurgulamak istedim sadece..
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Re: Bu kodu en kısa nasıl yazarım
Senin hesabına göre .Net tabanlı 64mb bir el bilgisayarına 2-3 program bile yükleyemessin.ibrahimcoban yazdı:.Net' de en küçük program 25 mb dır.
Ancak benim bildiğim kadarıyla .net uygulamaları oldukça küçük boyutlu oluyor. Bunun sebebi de framework sisteminde
birçok işlemi yapmayı sağlayan kütüphanelerin bulunması. Delphi programının boyutunun büyük olmasının en büyük
sebebi exe içerisine vcl vb kütüphanelerin eklenmesidir. Framework uygulamalarında ekstra kütüphaneler exe dosyaya
yüklenmez. Bu sayede dosya boyutu çok küçük olur. 64mb belleğe 200 program bile yüklenebilir diye düşünüyorum.
- sabanakman
- Kıdemli Üye
- Mesajlar: 3077
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: Bu kodu en kısa nasıl yazarım
MS bir zamanlar borlanddan ciddi yazılımcı transferleri yapmıştı. Hemen akabinde de .net platformu gelişti. Asıl olarak java'ya alternatif olarak görünür gibi olsa da özellikleri incelendiğinde ne hikmetse borland tasarımını andırıyor . Mesela .net dll'leri bildiğimiz delphi .bpl kütüphanesiyle tıpatıp aynı mantıkla geliştirilmişler. namespace denen kavram zımbırtısı bildiğimiz 40 yıllık unit'ler. nokta karakteri de kullanılabilir olduğundan biraz janjanlı olmuş. .net platformunda versiyon uyuşmazlığı ortadan kaldırılmış. Zaten olması gereken de buydu. Win32 için doğası gereği bu mümkün olmamaktadır fakat .net baştan tasarlanırken bu sorunu yaşayanlar tarafından dikkate alınmış. .net kütüphanelerinde karşılaşılan bir çok nesne delphi VCL'inde zaten mevcuttu örneklerde ve uygulamalarda karşılaşınca hiç şaşırmadım. Hatta bazı .net forum sitelerinde ilk zamanlar incelerken bildiğimiz VCL nesnelerini .net ortamında ilk kez inceleyenlerin ağzının suyu akıyordu, tuhafıma gitmişti. Tabi kütüphane kavramı daha da geliştirilebilir olduğundan o zengin bu fakir kıyaslaması yapmak çok komik olacaktır ama .net ile sunulan hazır imkanlar tartıda ağır çıkabilir. Bakarsan bağ, bakmazsan dağ olur misali hangisi daha çok ilgi görürse onun için geliştirilen imkanlar genişleyecektir. Eğer standart bir win32 uygulaması geliştirilecekse .net tamamen gözardı edilmeli. Performans olarak win32 uygulamasını yakalaması imkansızdır. Bunun haricinde bir web uygulaması veya patform bağımsız bir console ekranı programı yazılacaksa da (hangi program böyle ki ) .net'te program yazmak yerinde olacaktır. Boyut meselesine gelince, kullanılan kütüphaneleri .exe içine al seçeneği varsa boyu büyür, MB'larca boyuta ulaşır, aksi durumda kütüphane dosyalarından kullanılırsa çok küçük boyutlarda (yaklaşık 30 KB'tan başlar projeye göre büyür gider) programlar yazılabilir. Bu hem .net için hem de win32 için böyledir (Project->Options->Packages->Built with runtime packages seçeneği işaretli ise kütüphane kodları .exe dışında tutulur ihtiyaç duyulan .bpl'lerin de taşınması zorunluluğu vardır). Tabi kullanılan kütüphane dosyalarının da sistemde yüklü olması zorunluluğu vardır ve eğer .net için standart kütüphane dışına çıkılmadı ise ufacık bir proje framework yüklü her yerde çalışacaktır.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
Re: Bu kodu en kısa nasıl yazarım
.Net projelerinin boyutu küçük olur zira istediği framework GB seviyesine yakın Bende buna gıcık oluyorum vistada heralde kurulu geliyor ama XP kullanıcıları için can sıkıcı olabiliyor.1mb program çalıştırmak için yükle devasa framework'u...Kotalı türk kullanıcısı sevmez bu işi sevmiyorda Dolayısıyla Win32 uygulamaları için .Net kullanmak programcı için iyi kullanıcı için sıkıntılı olabiliyor...
Re: Bu kodu en kısa nasıl yazarım
arkadaşın vurgulamak istediği 20 küsur mb boyutundaki framework setup dosyası anladığım kadarıyla.akdatilla yazdı:Senin hesabına göre .Net tabanlı 64mb bir el bilgisayarına 2-3 program bile yükleyemessin.ibrahimcoban yazdı:.Net' de en küçük program 25 mb dır.
Ancak benim bildiğim kadarıyla .net uygulamaları oldukça küçük boyutlu oluyor. Bunun sebebi de framework sisteminde
birçok işlemi yapmayı sağlayan kütüphanelerin bulunması. Delphi programının boyutunun büyük olmasının en büyük
sebebi exe içerisine vcl vb kütüphanelerin eklenmesidir. Framework uygulamalarında ekstra kütüphaneler exe dosyaya
yüklenmez. Bu sayede dosya boyutu çok küçük olur. 64mb belleğe 200 program bile yüklenebilir diye düşünüyorum.
ayrıca el bilgisayarı için kullanılan compact framework pc ye kurulanla aynı olmadığı gibi kurulum dosyası yaklaşık 5mb civarında
ve pc ye kurulana göre çok daha kısıtlı olduğu için kurulum sonrası kaplayacağı alan da o kadar çok değil....
bazen yükselmek için önce dibi görmek gerekir...
forumda soru sormadan önce bakılmalı bence
daha fazlası için...
yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...
forumda soru sormadan önce bakılmalı bence
daha fazlası için...
yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...
- sabanakman
- Kıdemli Üye
- Mesajlar: 3077
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: Bu kodu en kısa nasıl yazarım
Hem, eğer yanlış hatırlamıyorsam XP'nin ServicePack1'inde framework vardı, olmadı SP2'de garanti . SP3 çıkalı çok olduğundan framework'leri windowsa yüklemek çok sıkıntı olmaz herhalde (daha geçen gün adamın biriyle 98'i bırak artık yeni işletim sistemine geç diye tartışmamışım gibi ne de rahatım değil mi?).
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
Re: Bu kodu en kısa nasıl yazarım
C# her gördügü şeyden birşeyler aldı. Genel yazılım C++ andırır, ama java, delphi gibi programlarla da benzerlikler taşıyor.
Herhangi bir dille yazılmış programı, diger dillerle de yazabilirsiniz. Dil aslında sınırlayıcı bir faktör degildir. C, C++, python, delphi vs farketmez, bir dilin yaptıklarını diger diller de yaparlar. Günümüzde önemli olan sadece bir kereligine program yazmak degil programın hatalardan arındırılmasını, yeni özellikler eklenmesi vs gibi işleri yapabilmektir. Bir programın kısa sürede yazılıp, hazırlanması da son derece önemldir. C# dll kütüphanelere kolayca baglanıp, onları kullanabilmesiyle diger dillerden önemli ölçüde öne çıkıyor.
C# hız olarak yavaş ve kaynakları fazla kullanıyor. Ama çogu programcı için hız ve kaynaklar arka planda kalıyor. Programa yeni özelliklerin kolayca eklenmesi ve yazm rahatlıgı daha öncelikli konular.
Burada delphiyi küçümsemiyorum, turbo pascal 5.0 dan beri pascal, delphi ile program yazıyorum ve bir ara borland c++ 4.0 la da program yazdım. OWL, turbo vision, MFC hepsiyle azçok haşır neşir oldum. Linux ortamında yazmasam da gtk, qt kitaplıklarını da inceledim. Söylemek istedigim uzun vadede C# çok avantajlı bir dil ve diger dillere açık üstünlükleri var. Sürekli eklenen özelliklerle de bu üstünlüklerini artırıyor.
Ayrıca C# WPF ile zengin bir kullanıcı arabirimi sunuyor. WPF yi kullanıp, xaml ile çok zengin arabirimler yaratmak mümkün. Kullanımı sadece web ve konsolla sınırlı degil, çok geniş kütüphanelere sahip. Delphiyle yazdıgınız her programı C# ile de yazabilirsiniz, sadece biraz daha yavaş çalışır, daha çok kaynak tüketir ve kullanıcının bilgisayarında framework kurulu olması gerekir.
http://en.wikipedia.org/wiki/C_Sharp_(p ... _language)
Herhangi bir dille yazılmış programı, diger dillerle de yazabilirsiniz. Dil aslında sınırlayıcı bir faktör degildir. C, C++, python, delphi vs farketmez, bir dilin yaptıklarını diger diller de yaparlar. Günümüzde önemli olan sadece bir kereligine program yazmak degil programın hatalardan arındırılmasını, yeni özellikler eklenmesi vs gibi işleri yapabilmektir. Bir programın kısa sürede yazılıp, hazırlanması da son derece önemldir. C# dll kütüphanelere kolayca baglanıp, onları kullanabilmesiyle diger dillerden önemli ölçüde öne çıkıyor.
C# hız olarak yavaş ve kaynakları fazla kullanıyor. Ama çogu programcı için hız ve kaynaklar arka planda kalıyor. Programa yeni özelliklerin kolayca eklenmesi ve yazm rahatlıgı daha öncelikli konular.
Burada delphiyi küçümsemiyorum, turbo pascal 5.0 dan beri pascal, delphi ile program yazıyorum ve bir ara borland c++ 4.0 la da program yazdım. OWL, turbo vision, MFC hepsiyle azçok haşır neşir oldum. Linux ortamında yazmasam da gtk, qt kitaplıklarını da inceledim. Söylemek istedigim uzun vadede C# çok avantajlı bir dil ve diger dillere açık üstünlükleri var. Sürekli eklenen özelliklerle de bu üstünlüklerini artırıyor.
Ayrıca C# WPF ile zengin bir kullanıcı arabirimi sunuyor. WPF yi kullanıp, xaml ile çok zengin arabirimler yaratmak mümkün. Kullanımı sadece web ve konsolla sınırlı degil, çok geniş kütüphanelere sahip. Delphiyle yazdıgınız her programı C# ile de yazabilirsiniz, sadece biraz daha yavaş çalışır, daha çok kaynak tüketir ve kullanıcının bilgisayarında framework kurulu olması gerekir.
http://en.wikipedia.org/wiki/C_Sharp_(p ... _language)