Ek almış bir kelimeyi nasıl belirtebilirim?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
futbolcu
Üye
Mesajlar: 129
Kayıt: 02 Tem 2003 07:33
Konum: Ankara

Ek almış bir kelimeyi nasıl belirtebilirim?

Mesaj gönderen futbolcu » 20 Nis 2004 09:43

Merhaba Arkadaşlar,
Tamamlamaya çalıştığım bir düzeltme ve metin ayıklama programcığı var. Ancak bazı eksiklerim var. Örneğin aşağıdaki kod üzerinde ek almış kelimenin düzeltilmesini yapıyorum ancak bu kez ek almamış kelimenin de sonuna "'" karakteri atıyor. Örneğin ALi Ali' oluyor. Bu kelimelerin sonundaki karakteri de siliyorum ama bu da çalışmayı çok ama çok uzatıyor. Burada bir yanlışlık yapıyorum ama çözemedim. Önerileriniz için şimdiden ve gerçekten teşekkür ederim.

Kod: Tümünü seç

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
      Function Duzelt(Memo:TMemo;Aranan,Yeni:String):Integer;
Var
  t:String;
  i,a,b,c:Integer;
begin
  c:=0;
  a:=Length(Aranan);
  For i:=0 to Memo.Lines.Count-1 do
  Begin
    t:=Memo.Lines.Strings[i];
    b:=Pos(Aranan,t);
    If b<>0 Then
    Begin
       Memo.Lines.Strings[i]:=Copy(t,1,b-1)+Yeni+Copy(t,a+b,Length(t)-(a+b-1));
       Inc(c);
    End;
  End;
  Duzelt:=c;
End;


procedure TForm1.Button1Click(Sender: TObject);
begin
 duzelt(Memo1,'Alİ'+'','Ali'); //Ali ek almamışsa
 duzelt(Memo1,'ali'+#32,'Ali');
   duzelt(Memo1,'ALi'+#32,'Ali');
      duzelt(Memo1,'Alİ','Ali'+#39); //ali ek almışsa ' ile ayırmalı
      duzelt(Memo1,'ali','Ali'+#39); //Ali'ye gibi
      duzelt(Memo1,'ALi','Ali'+#39);
end;

end.
Bilgi çoğaldıkça krallar ölür

Kullanıcı avatarı
hdayi
Kıdemli Üye
Mesajlar: 1284
Kayıt: 29 Oca 2004 01:53
Konum: Erciyes'in eteklerinden.

Mesaj gönderen hdayi » 21 Nis 2004 06:28

Ben ali ek almamışsa'dan sonra bir kontrol ifdadesi görmedim. Ali ek almamış olsa bile ek almış olanın çalıştırması gereken satırları da çalıştırıyor. o satırlardan önce bir kontrol ifdadesi koyarsan sanırım sorun çözülür.
Bişnev in ney çün hikâyet mîküned
Ez cüdâyîhâ şikâyet mîküned
Resim

Kullanıcı avatarı
futbolcu
Üye
Mesajlar: 129
Kayıt: 02 Tem 2003 07:33
Konum: Ankara

Mesaj gönderen futbolcu » 21 Nis 2004 01:59

oraya hangi kontrolü nasıl koyabilirim ki?
Bilgi çoğaldıkça krallar ölür

Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 12:48
Konum: İstanbul

Mesaj gönderen rsimsek » 21 Nis 2004 02:47

kesme tırnağı koyacağın yerlere iki adet tek tırnak koymalısın.

Örn: 'ALİ' + '''' + 'ye' gibi.
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!

Kullanıcı avatarı
futbolcu
Üye
Mesajlar: 129
Kayıt: 02 Tem 2003 07:33
Konum: Ankara

Mesaj gönderen futbolcu » 21 Nis 2004 05:36

Hocam öncelikle teşekkürler. Dediğinizi uyguladım ancak olmadı. Sonuçta her gördüğü ALi yi Ali' olarak düzeltiyor( Eğer bir hata yapmıyorsam)
Sanırım ek bir fonksiyon tanımlamak gerekecek. İşin içerisinden çıkamaz isem yine yazarım.
selamlar
Bilgi çoğaldıkça krallar ölür

Cevapla