hani bi text dosyasını actıgınızda bul diye bi komut var ya bi kelime bulununca onu secili bicimde bize gösteriyor ya.. iste edit kurusuna yazılan kelime de dmmemo kutusunda bulundugunda yine secili olarak gösterilsin. yani mesela arana kelime "köprü" olsun db memo icinde köprü kelimesi, "fatih köprüsünün acılısı" diye bi cümlede bulunmus olsun. istedigim sey cümle icinde köprü kelimesini secili olarak görebileyim...
umarım simdi daha iyi anlatabilmisimdir....
cok tşk...
aranan kelimeyi secili olarak gösterme
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Arama işlemini POS fonksiyonu ile yapabilirsin.
buradaki a integer bir değişken, "köprü" kelimesinin arandığı cümle içindeki pozisyonunu verir. Yani burda a 7 olur. Sen de bu cümlenin 7.karakterinden itibaren aradığın kelimenin length i kadarını (köprü için bu değer 5 olur) seçili yapabilirsin.
Kod: Tümünü seç
a := POS('köprü','fatih köprüsünün acılısı');
yaw arkadaşlar biraz help kurcalayın yaa. Ingilizce bilmiyosanız alın bir sözlük tercüme edin. walla ben ilk başladığımdan beri hep böyle yaptım.Hem programcılık öğrendim hemde ingilizce. Aşağıdaki örnek help ten.
kolay gele
Kod: Tümünü seç
procedure TForm1.FindDialog1Find(Sender: TObject);
var
I, J, PosReturn, SkipChars: Integer;
begin
for I := 0 to Memo1.Lines.Count do
begin
PosReturn := Pos(FindDialog1.FindText,Memo1.Lines[I]);
if PosReturn <> 0 then {found!}
begin
SkipChars := 0;
for J := 0 to I - 1 do
SkipChars := SkipChars + Length(Memo1.Lines[J]);
SkipChars := SkipChars + (I*2);
SkipChars := SkipChars + PosReturn - 1;
Memo1.SetFocus;
Memo1.SelStart := SkipChars;
Memo1.SelLength := Length(FindDialog1.FindText);
Break;
end;
end;
end;
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
teşekkür
ilginizden dolayı teşekkür ederim.
Kod: Tümünü seç
procedure TForm1.FindDialog1Find(Sender: TObject);
var
I, J, PosReturn, SkipChars: Integer;
begin
for I := 0 to Memo1.Lines.Count do
begin
PosReturn := Pos(FindDialog1.FindText,Memo1.Lines[I]);
if PosReturn <> 0 then {found!}
begin
SkipChars := 0;
for J := 0 to I - 1 do
SkipChars := SkipChars + Length(Memo1.Lines[J]);
SkipChars := SkipChars + (I*2);
SkipChars := SkipChars + PosReturn - 1;
Memo1.SetFocus;
Memo1.SelStart := SkipChars;
Memo1.SelLength := Length(FindDialog1.FindText);
Break;
end;
end;
end;
bu kodu denedim ben fakat sadece bir tanesini buluyor. Diğerlerine geçmiyor...
DOĞUNUN SINIR TAŞI ERZURUM'UN DADAŞ'I
EFE'Sİ VAR İZMİR'İN EĞİLMEZ TÜRK' ÜN BAŞI
EFE'Sİ VAR İZMİR'İN EĞİLMEZ TÜRK' ÜN BAŞI
Memo yerine richedit koy, (adını memo1 yapsako yazdı:bu kodu denedim ben fakat sadece bir tanesini buluyor. Diğerlerine geçmiyor...

Kod: Tümünü seç
.......................
Memo1.SetFocus;
Memo1.SelStart := SkipChars;
Memo1.SelLength := Length(FindDialog1.FindText);
Memo1.SelAttributes.Style:=[fsBOLD];
// Break; <<<--- Bu break,başına // koy, üstüne gelip F1 e bas :))
//orda detaylı yazar
end;
end;
.............................