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.