Geliþmiþ türkçe sözcük heceleme
csyasar30.04.2004 - 14:04:57
function Sesli(Harf: Char): Boolean;
begin
Result := Pos(Harf, 'aeýioöuüAEIÝOÖUÜ') > 0;
end;

function Sessiz(Harf: Char): Boolean;
begin
Result := Pos(Harf, 'bcçdfgðhjklmnpqrsþtvyxwzBCÇDFGÐHJKLMNPQRSÞTVYXWZ') > 0;
end;

function Harf(Harf: Char): Boolean;
begin
Result := Sesli(Harf) or Sessiz(Harf);
end;

function Ayirac(Harf: Char): Boolean;
begin
Result := Pos(Harf, '''")]}') > 0;
end;

function Hecele(mesaj: String): String;
var
g : string;
i : integer;
begin
g := '';
i := Length(mesaj);
while i>0 do
begin
// Uzun metinler icin konulabilir..
Application.ProcessMessages;
//
g := mesaj[i] + g;
if Sesli(mesaj[i]) then
begin
if Sesli(mesaj[i-1]) then
g := '-' + g;
if Sessiz(mesaj[i-1]) and Harf(mesaj[i-2]) then
begin
g := '-' + mesaj[i-1] + g;
i := i - 1;
end;
// Ayýraclar gözardi edilebilir..
if Ayirac(mesaj[i-1]) and Harf(mesaj[i-2]) then
g := '-' + g;
if Ayirac(mesaj[i-2]) and Harf(mesaj[i-3]) then
begin
g := '-' + mesaj[i-1] + g;
i := i - 1;
end;
// ayiraclar
end;
i := i - 1;
end; // while sonu
Result := g;
end;

// Kullanimi

procedure TForm1.Button1Click(Sender: TObject);
begin
Memo2.Text := Hecele(Memo1.Text);
end;
 
NOT : Bu sayfa google'un siteyi indekslemesi içindir. www.delphiturkiye.com/forum/ adresini kullanýnýz!
1998-2006 www.delphiturkiye.com