| csyasar | 30.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; | |