2 kelime arasını alıp gerisi silme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
sako
Üye
Mesajlar: 477
Kayıt: 11 Haz 2003 02:40
Konum: ERZURUM

2 kelime arasını alıp gerisi silme

Mesaj gönderen sako »

Edite girilmiş beir metinde 2 kelime arasını silmek istiyorum. Daha önceki konularda bulamadım.Örnek aşağıdaki gibi:

<burası silinecek> burası kalacak <burası silinecek>
DOĞUNUN SINIR TAŞI ERZURUM'UN DADAŞ'I
EFE'Sİ VAR İZMİR'İN EĞİLMEZ TÜRK' ÜN BAŞI
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: 2 kelime arasını alıp gerisi silme

Mesaj gönderen SimaWB »

sorunuzu biraz daha açar mısınız lütfen? "2 kelime arasını silmek istiyorum" demişsiniz ama verdiğiniz örnekte iki kelime arası "silinmeyecek" deniliyor. Örneğin "kelime1 kelime2 kelime3 kelime4 kelime5 kelime6" şeklinde bir cümle girilmişse nasıl davranılacak?
There's no place like 127.0.0.1
sako
Üye
Mesajlar: 477
Kayıt: 11 Haz 2003 02:40
Konum: ERZURUM

Re: 2 kelime arasını alıp gerisi silme

Mesaj gönderen sako »

Hocam özür dilerim yanlış yazmışım. Ortadaki kısım kalacak baş taraflardaki belirttiğim kelimeler silinecek.
DOĞUNUN SINIR TAŞI ERZURUM'UN DADAŞ'I
EFE'Sİ VAR İZMİR'İN EĞİLMEZ TÜRK' ÜN BAŞI
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: 2 kelime arasını alıp gerisi silme

Mesaj gönderen SimaWB »

Sadece belirli kelimeler silinecekse StringReplaceişinizi görebilir. StringReplace'de yeni değer olarak boşluk atarsanız olur gibi.

Kod: Tümünü seç

Edit1.Text := StringReplace(Edit1.Text, 'Aranacak', '',  [rfReplaceAll])
Ama ben hala verilen bilginin yetersiz olduğu kanısındayım :wink:
There's no place like 127.0.0.1
akdatilla
Üye
Mesajlar: 292
Kayıt: 02 Nis 2006 06:04
Konum: Antalya

Re: 2 kelime arasını alıp gerisi silme

Mesaj gönderen akdatilla »

merhaba
size birkaç komut açıklayayım:
pos: bir string içerisinde bir kelimeyi arar ve bulunursa pozisyonunu verir.
delete: bir stringin istenilen pozisyondan itibaren istenilen sayıda karakteri silmek için kullanılır.
uppercase yada ucase tam hatırlamıyorum sonuçta bir stringi büyük harfe çevirir. Bunu küçük büyük harf ayrımından kurtarmak için kullanabilirsiniz.
birde buna benzer komutları ansi ile başlayanları var (ansipos gibi) onları da bir araştırın (gerekirse).

sanırım bu komutlar işinizi görebilir.
kolay gelsin.
sako
Üye
Mesajlar: 477
Kayıt: 11 Haz 2003 02:40
Konum: ERZURUM

Re: 2 kelime arasını alıp gerisi silme

Mesaj gönderen sako »

SimaWB yazdı:Sadece belirli kelimeler silinecekse StringReplaceişinizi görebilir. StringReplace'de yeni değer olarak boşluk atarsanız olur gibi.

Kod: Tümünü seç

Edit1.Text := StringReplace(Edit1.Text, 'Aranacak', '',  [rfReplaceAll])
Ama ben hala verilen bilginin yetersiz olduğu kanısındayım :wink:
Şöyle bir örnek veriyim o zaman.

<title> selam ben sako </title>

<title> ve</title> silinecek aradaki metin kalacak...
DOĞUNUN SINIR TAŞI ERZURUM'UN DADAŞ'I
EFE'Sİ VAR İZMİR'İN EĞİLMEZ TÜRK' ÜN BAŞI
doktoraltun
Üye
Mesajlar: 73
Kayıt: 06 Oca 2012 06:56

Re: 2 kelime arasını alıp gerisi silme

Mesaj gönderen doktoraltun »

Kod: Tümünü seç

Edit1.Text := StringReplace(Edit1.Text, '<title>', '*',  [rfReplaceAll]);
Edit1.Text := StringReplace(Edit1.Text, '</title>', '¿',  [rfReplaceAll]);
edit2.Text:=copy(edit1.Text,pos('*',edit1.text)+1,pos('¿',edit1.text)-2);
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: 2 kelime arasını alıp gerisi silme

Mesaj gönderen SimaWB »

sako yazdı:
SimaWB yazdı:Sadece belirli kelimeler silinecekse StringReplaceişinizi görebilir. StringReplace'de yeni değer olarak boşluk atarsanız olur gibi.

Kod: Tümünü seç

Edit1.Text := StringReplace(Edit1.Text, 'Aranacak', '',  [rfReplaceAll])
Ama ben hala verilen bilginin yetersiz olduğu kanısındayım :wink:
Şöyle bir örnek veriyim o zaman.

<title> selam ben sako </title>

<title> ve</title> silinecek aradaki metin kalacak...
StringReplace olur bence :)
Delphi 2009 ve sonrası için TStringBuilder'a gözatın isterseniz.
There's no place like 127.0.0.1
Cevapla