Memo İçinde Böyle Bir Arama Nasıl Yapılır?
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 76
- Kayıt: 01 Nis 2016 03:58
Memo İçinde Böyle Bir Arama Nasıl Yapılır?
merhaba,
memo içinde bir makale var.
aşağıdaki kelimelerden birini bulursa diğer dördünden biriyle değiştirmesini istiyorum.
{hayatımızın|yaşamın|hayatımızın|yaşamımızın|yaşantımızın}
böyle bir şeyi php'de yazabiliyorlar bir türlü delphi'ye uyarlayamadım yazdığım uygulama için çok önemli bunu yazamazsam uygulamam pek bir işe yaramaz yardımlarınız için şimdiden teşekkür ederim iyi forumlar.
memo içinde bir makale var.
aşağıdaki kelimelerden birini bulursa diğer dördünden biriyle değiştirmesini istiyorum.
{hayatımızın|yaşamın|hayatımızın|yaşamımızın|yaşantımızın}
böyle bir şeyi php'de yazabiliyorlar bir türlü delphi'ye uyarlayamadım yazdığım uygulama için çok önemli bunu yazamazsam uygulamam pek bir işe yaramaz yardımlarınız için şimdiden teşekkür ederim iyi forumlar.
Re: Memo İçinde Böyle Bir Arama Nasıl Yapılır?
SynMemo adında bir komponet var
Memodan çok çok gelişmiş özelliklere sahip, bahsettiğiniz özellik bu komponette var.
Memodan çok çok gelişmiş özelliklere sahip, bahsettiğiniz özellik bu komponette var.
Çaylak Delphici 
Yakup ULUTAŞ

Yakup ULUTAŞ
Re: Memo İçinde Böyle Bir Arama Nasıl Yapılır?
Merhaba,hakanharbeli yazdı:merhaba,
memo içinde bir makale var.
aşağıdaki kelimelerden birini bulursa diğer dördünden biriyle değiştirmesini istiyorum.
{hayatımızın|yaşamın|hayatımızın|yaşamımızın|yaşantımızın}
böyle bir şeyi php'de yazabiliyorlar bir türlü delphi'ye uyarlayamadım yazdığım uygulama için çok önemli bunu yazamazsam uygulamam pek bir işe yaramaz yardımlarınız için şimdiden teşekkür ederim iyi forumlar.
Değiştirilecek kelime dört seçenek içinden herhangi bir tanesi olabilir mi? Rastgele seçilebilir mi?
-
- Üye
- Mesajlar: 76
- Kayıt: 01 Nis 2016 03:58
Re: Memo İçinde Böyle Bir Arama Nasıl Yapılır?
tabiki olur hocam yeterki 5'inden birini bulursa diğer 4'ünden biriyle değişsin
-
- Üye
- Mesajlar: 76
- Kayıt: 01 Nis 2016 03:58
Re: Memo İçinde Böyle Bir Arama Nasıl Yapılır?
synmemo'yu da hemen araştırıyorum
Re: Memo İçinde Böyle Bir Arama Nasıl Yapılır?
Memo içinde string arama/değiştirme için yeni bir komponent mi
Bunu tavsiye eden yhackup'u protesto ediyorum

Bunu tavsiye eden yhackup'u protesto ediyorum

There's no place like 127.0.0.1
-
- Üye
- Mesajlar: 76
- Kayıt: 01 Nis 2016 03:58
Re: Memo İçinde Böyle Bir Arama Nasıl Yapılır?
abi synmemo'yu sabahtan beri deniyor didik didik ettim böyle bir şey bulamadım nasıl yapabilirim ?
Re: Memo İçinde Böyle Bir Arama Nasıl Yapılır?
Aşağıdaki kodu deneyebilirsiniz.
Kullanımı şöyle olacaktır:
NOT: Yeni Delphi sürümlerine göre yazılmıştır. Delphi 7 kullanıyor iseniz birkaç yerde ayarlama gerektirir.
Kod: Tümünü seç
function ReplaceFromWords(const MainText, WordsToFind: TStrings; const ReplaceAll: Boolean = False): string;
function GetRandomIndex(const IndexToOmit, MaxIndex: Integer): Integer;
var
NewList: TArray<Integer>;
Count, i: Integer;
begin
SetLength(NewList, MaxIndex-1);
i := 0;
Count := 0;
while i < MaxIndex do
begin
if i <> IndexToOmit then
begin
NewList[Count] := i;
Inc(Count);
end;
inc(i);
end;
Result := NewList[Random(MaxIndex)];
end;
const
Delimiters = [#0..#47, #58..#64, #91..#96, #123..#126];
var
i, j, Index: Integer;
P1, P2: Integer;
Flags: TReplaceFlags;
begin
Randomize;
if MainText.Text = EmptyStr then
begin
Result := EmptyStr;
Exit();
end;
Result := MainText.Text;
if WordsToFind.Count = 0 then Exit();
for i := 0 to Pred(WordsToFind.Count) do
begin
P1 := Pos(WordsToFind[i], Result);
if P1 > 0 then
begin
P2 := 0;
for j := P1 + 1 to Length(Result) do
begin
if Result[j] in Delimiters then
begin
P2 := j;
Break;
end;
end;
if P2 = 0 then P2 := Length(Result);
Delete(Result, P1, P2-P1);
Insert(WordsToFind[GetRandomIndex(i, WordsToFind.Count)], Result, P1);
Exit();
end;
end;
end;
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
var
Words: TStringList;
begin
Words := TStringList.Create();
try
Words.Add('hayatımızın');
Words.Add('yaşamın');
Words.Add('yaşamımızın');
Words.Add('yaşantımızın');
Words.Add('yaşam');
Memo1.Text := ReplaceFromWords(Memo1.Lines, Words);
finally
Words.Free();
end;
end;
Re: Memo İçinde Böyle Bir Arama Nasıl Yapılır?
Memo içinde "hayatımızın" yerine "yaşamımızın" yazmanın en kolay yolu:
Son parametredekilerin ne işe yaradığını araştırmak size kalsın.
Kod: Tümünü seç
Memo1.Text := StringReplace(Memo1.Text, 'hayatımızın', 'yaşamımızın', [rfReplaceAll, rfIgnoreCase]);
There's no place like 127.0.0.1
Re: Memo İçinde Böyle Bir Arama Nasıl Yapılır?
Aşağıdaki gibi bir durumda rfReplaceAll sorun çıkaracaktır.SimaWB yazdı:Memo içinde "hayatımızın" yerine "yaşamımızın" yazmanın en kolay yolu:Son parametredekilerin ne işe yaradığını araştırmak size kalsın.Kod: Tümünü seç
Memo1.Text := StringReplace(Memo1.Text, 'hayatımızın', 'yaşamımızın', [rfReplaceAll, rfIgnoreCase]);
Kod: Tümünü seç
Memo1.Text := 'yaşamın en güzel anlarını yaşamak için. Sen çok yaşa';
Memo1.Text := StringReplace(Memo1.Text, 'yaşam', 'hayat', [rfReplaceAll, rfIgnoreCase]);
hayatın en güzel anlarını hayatak için. Sen çok yaşa
Tek doğru değiştirilmiş kelime son kelime olur bu durumda.
Re: Memo İçinde Böyle Bir Arama Nasıl Yapılır?
Soru şu şekilde:
Tabi soruda şöyle bir hata var: "diğer dördünden biri".
Hangisi? Neye göre karar verilecek?
Bunu zaten soran kişi biliyordur sanırım
Benim verdiğim cevap soruya uygun.hakanharbeli yazdı: aşağıdaki kelimelerden birini bulursa diğer dördünden biriyle değiştirmesini istiyorum.
{hayatımızın|yaşamın|hayatımızın|yaşamımızın|yaşantımızın}
Tabi soruda şöyle bir hata var: "diğer dördünden biri".
Hangisi? Neye göre karar verilecek?
Bunu zaten soran kişi biliyordur sanırım

There's no place like 127.0.0.1
Re: Memo İçinde Böyle Bir Arama Nasıl Yapılır?
hakanharbeli yazdı:abi synmemo'yu sabahtan beri deniyor didik didik ettim böyle bir şey bulamadım nasıl yapabilirim ?
Yeterince etmemişin abi

Veli Hocamın bahsettiği Stringreplace işini görüyorsa onunla hallet daha gelişmiş bir şey bu,
Senin için yandexe attım bir çok özelliği var fazlası ile işini görür. sen özeleştirirsin kendine göre
https://yadi.sk/d/6S76n4B5uLNS2


Çaylak Delphici 
Yakup ULUTAŞ

Yakup ULUTAŞ