Girilen bir cümlenin kaç kelime olduğunu bulan Delphi Prog.

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Berdusbuyurur
Üye
Mesajlar: 5
Kayıt: 07 Ara 2011 12:59

Girilen bir cümlenin kaç kelime olduğunu bulan Delphi Prog.

Mesaj gönderen Berdusbuyurur »

Merhaba arkadaşlar,başlıktada görüldüğü üzere böyle bir delphi programına ihtiyacım var.
C# ta yazdım fakat Delphi ile pek haşinalığım yok,elimden geldiğince delphi ye çevirmeye çalıştım.Aşağıya C# ve elimden geldiğince uyarladığım Delphi kodlarını yazacağım.Yardımcı olursanız çok minnettar kalırım,kolay gelsin.

C# Kodları:

private void button1_Click(object sender, EventArgs e)
{
int kelimesayisi = 1;
int bul = 1;
// TextBox tan gireceğimiz değeri metin değişkenine atıyoruz. Trim ile de başındaki ve sonundaki boşlukları kaldırıyoruz.
string metin = textBox1.Text.Trim();
// Burada döngümüzü kuruyoruz.
// Döngümüz bul'un ilk değeri 1 olduğu için 1'den dönmeye başlayacak.
// metin.Length ile de metindeki karakter sayısını alıyoruz.
// bul değişkeni her döndüğünde değeri 1 artar(bul++) metindeki karakter sayından küçük olduğu sürece döngümüz dönmeye devam edecektir.
for (; bul < metin.Length; bul++)
{
// Metnin her karakterini kontol edip boşluk arıyoruz. Her boşluk bir kelimedir.
// Boşluk buldukca kelime sayısını 1 artırıyoruz.
if (metin.Substring(bul, 1) == " ") kelimesayisi += 1;
}
// En son olarak da bulunan kelime sayısını kullanıcıya gösteriyoruz.
MessageBox.Show("Bu cümlede " + kelimesayisi.ToString() + " kelime vardır.");
}

Uyarlamaya çalıştığım Delphi Kodları:

var metin:string;
metin:=copy(edit1.text);
//Edit1'e girilen değeri metin adındaki bir değikene atadık.

metin:=Trim(metin)
//metin değişkeninin içindeki değerin başındaki ve sonundaki boşlukları silmek
//için Trim Fonksiyonunu kullandık.

bul:integer;
kelimesayisi:integer;
//Değişkenlerimizi tanımladık.

begin
for bul:=1 to length(metin) do
// Burada döngümüzü kuruyoruz.
// Döngümüz bul'un ilk değeri 1 olduğu için 1'den dönmeye başlayacak.
// length(metin) ile de metindeki karakter sayısını alıyoruz.
//döngüyü 1 den başlatıp metin değişkeninin karakter sayısı kadar döndürüyoruz.

if AnsiContainsStr(metin, ' ' StrToInt(kelimesayisi+1));
// Metnin her karakterini kontol edip boşluk arıyoruz. Her boşluk bir kelimedir.
// Boşluk buldukca kelime sayısını 1 artırıyoruz.

Label1.Caption:='Bu cümlede ' + IntToStr(kelimesayisi) +' kelime vardır.'
// En son olarak da bulunan kelime sayısını kullanıcıya gösteriyoruz.
end;
end.
Kullanıcı avatarı
unicorn64
Üye
Mesajlar: 919
Kayıt: 04 Nis 2006 08:56
Konum: yine yeniden Ankara ^_^

Re: Girilen bir cümlenin kaç kelime olduğunu bulan Delphi Pr

Mesaj gönderen unicorn64 »

:ara extractstrings
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...

Resim
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: Girilen bir cümlenin kaç kelime olduğunu bulan Delphi Pr

Mesaj gönderen SimaWB »

Kod: Tümünü seç

var
   SL: TStringList;
begin
   SL:= TStringList.Create;
   try
     SL.Delimiter := ' ';
     SL.DelimitedText := Trim(Edit1.Text); 
     ShowMessage(Format('Kelime sayısı: %d', [SL.Count]));
   finally
     SL.Free;
   end;
end.
There's no place like 127.0.0.1
orhancc
Üye
Mesajlar: 585
Kayıt: 24 Ağu 2010 02:14
Konum: İstanbul / Kadıköy
İletişim:

Re: Girilen bir cümlenin kaç kelime olduğunu bulan Delphi Pr

Mesaj gönderen orhancc »

SimaWb'nin örneği en kullanışlı olanı.

Farklı bir C# kodu, eğer sadece manalı kelimeler sayılacaksa regex ile bir kontrol daha eklemek gerekiyor yoksa noktalama işaretlerini de kelime olarak kabul edecektir.

Kod: Tümünü seç

var cumle = " bu bir cümle olsun, araya . , : falan koyalım haydi ";
var kelimeler = cumle.Trim().Split(' ');
MessageBox.Show(kelimeler.Count().ToString());
Berdusbuyurur
Üye
Mesajlar: 5
Kayıt: 07 Ara 2011 12:59

Re: Girilen bir cümlenin kaç kelime olduğunu bulan Delphi Pr

Mesaj gönderen Berdusbuyurur »

Kodlar için çok teşekkür ederim SimaWB,kodları button un click özelligine yapıstırdım fakat aşağıdaki 3 hatayı alıyorum .
http://imageshack.us/photo/my-images/831/61698732.png/
Bu arada form dizaynında 1 adet edit ve button harici birşey yok.Yardımın için tekrar teşekkür ederim.
orhancc
Üye
Mesajlar: 585
Kayıt: 24 Ağu 2010 02:14
Konum: İstanbul / Kadıköy
İletişim:

Re: Girilen bir cümlenin kaç kelime olduğunu bulan Delphi Pr

Mesaj gönderen orhancc »

tryin endini eklemeyi unutmuşsun. yada beginin birine daha ekleyeceksin :)
Berdusbuyurur
Üye
Mesajlar: 5
Kayıt: 07 Ara 2011 12:59

Re: Girilen bir cümlenin kaç kelime olduğunu bulan Delphi Pr

Mesaj gönderen Berdusbuyurur »

orhancc hocam çok teşekkür ederim,dediğiniz gibi bir end im eksikmiş :)
Cevapla