String için Katar arama

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
muskut
Kıdemli Üye
Mesajlar: 1118
Kayıt: 22 Ara 2003 09:50
Konum: Sandalyemden
İletişim:

String için Katar arama

Mesaj gönderen muskut »

Hepinize hayırlı günler diliyorum.

Arama yaptım ama bulamadım, yada gözümden kaçmışta olabilir. Benim şöyle bir şeye ihtiyacım var. Elimden uzun bir string var. Ben bunun içinden belli bir katarı aramak istiyorum bu arama sonucunda da bir integer, boolean değer falan dönüyorsa, bu sonuca göre aradığım katardan sonraki bir karakteri veya karakter dizini almak istiyorum. Yani başka bir ifade ile IniFile dosya yapısında olduğu gibi, Anahtar alanlara karşılık gelen değerleri almaya benziyor. Tek fark bu bir string içinde olacak. Bu konuda bir fonksiyon var mı? Yoksa döngüler ve posex gibi yordamlarlamı halletmem gerekecek. Şöyle birde örnek üzerinde ifade edeyim;

String'imin içeriği: "Merhaba hoş geldin ISIM=Mustafa, hadi sana güle güle"

işte ben bu stringi tarayacam, neye göre; ISIM katarına göre. ve bundan sonra gelen mesela 7 karakteri alacam. "Mustafa" değerini elde etmiş olacam böylece....

umarım anlaşılır olmuşumdur :) Hepinize kolay gelsin.
P206
Kıdemli Üye
Mesajlar: 395
Kayıt: 17 Haz 2003 12:36
Konum: İstanbul

Mesaj gönderen P206 »

Selamlar
POS komutu ile string içinde aradığın diğer bir stringin olup olmadığını varsa kaçıncı karakterde olduğunu bulabilirsin.
I love my car.
Blog Yaptık
Kullanıcı avatarı
mege
Admin
Mesajlar: 2360
Kayıt: 05 Şub 2004 04:32
Konum: Beşiktaş
İletişim:

Mesaj gönderen mege »

FastStrings string işleme fonksiyonu
mege yazdı:büyük string parçaların içinde hızlı arama yapma ve değiştirme algoritmasıyış. denemedim ama verdiği örnekteki karşılaştırma inanılmaz.
10 mbyte lık dosyayı
StringReplace 8 saatte tamamlarken
FastReplace fonksiyonu yarım saniyede tamamlıyormuş. Shocked
.-.-.-.-.-.-.-. ^_^
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

merhaba ,
bu konuda POS funtion u işinize yarayacaktır ,
kullanımı

Kod: Tümünü seç

var
Baslangic:Integer;
Cumle,Sonuc:String;
begin
Cumle:='Merhaba hoş geldin ISIM=Mustafa, hadi sana güle güle';
Baslangic:=Pos(Cumle,'ISIM=');
Sonuc:=copy(cumle,baslangic+6,7);
end;
bezer bir kullanım işinize yarayacaktır.
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
muskut
Kıdemli Üye
Mesajlar: 1118
Kayıt: 22 Ara 2003 09:50
Konum: Sandalyemden
İletişim:

Mesaj gönderen muskut »

Eyvallah, elinize gönlünüze, dilinize sağlık...
Kullanıcı avatarı
drony
Üye
Mesajlar: 48
Kayıt: 10 Tem 2004 04:41
Konum: Istanbul
İletişim:

Mesaj gönderen drony »

Genelde programlarımda bu mantığı kullanırım. Umarım yardımcı olur birine.

Kod: Tümünü seç

function Tform1.vericek(veri,basla,bit:string):string;
var
nbasla,nbit:integer;
begin
nbasla:=pos(basla,veri);
nbit:=pos(bit,veri);
//showmessage('basla '+inttostr(nbasla));
//showmessage('bit '+inttostr(nbit));
//
if nbit+nbasla>1 then begin
result:=copy(veri,nbasla+length(basla),(nbit+length(bit))-length(bit)-(nbasla+length(basla)));
end else result:='#bos#'
end;
örn..
var
str,sonuc:string;
str:='#isimbasla#drony#isimbit##sitebasla#delphi.unreadedpost.com#sitebit#';

sonuc:=vericek(str,'#isimbasla#','#isimbit#');

sonuc drony
Cevapla