Xml "&" ve "<" karakterini nasıl hızlı Replace Yapabilirim ?

Yapmak istediğiniz işle ilgili doğru bileşeni bulmak için burayı kullanabilirsiniz. Sadece bulmak için, diğer sorular Programlama forumuna lütfen.
Forum kuralları
Bu forum sadece yapacağınız işle alakalı doğru bileşeni bulmak içindir. Şöyle bir şey yapmam lazım, hangi bileşeni kullanıyım diyorsanız, doğru yerdesiniz.
Cevapla
emrahgs
Üye
Mesajlar: 114
Kayıt: 08 Tem 2008 06:25
Konum: Antalya

Xml "&" ve "<" karakterini nasıl hızlı Replace Yapabilirim ?

Mesaj gönderen emrahgs »

Merhaba Delphi 2007 Kullanıyorum
Xmlden Veri alma Üzrine Bİ Proje Yapmaya Çalışıyorum Fakat
Gelen Xml lerde "&" ve "<" karakterleri varsa clientdataset bu xml leri açamıyor ama internet explorer da açamıyor
Xml i Memo da açıp
for döngüsünde
StringReplace Kullanarak bu karakteler düzeltilebiliyor fakat
30 000 , 40 000 satır olan xml lerde bu yöntem çok yavaş kalıyor
bu nu daha hızlı nasıl replace yapabiliriz?
Teşekkürler.
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: Xml "&" ve "<" karakterini nasıl hızlı Replace Yapabilirim ?

Mesaj gönderen conari »

Kod: Tümünü seç

AnsiReplaceText(Text,'From','To') 
for döngüsü kullanılmaz
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Re: Xml "&" ve "<" karakterini nasıl hızlı Replace Yapabilirim ?

Mesaj gönderen Battosai »

Aşağıdaki fonksiyon ile daha hızlı sonuç alırsın...

Kod: Tümünü seç

function ReplaceCharFast (const s: string): string;
var i: integer;
begin
  Result := s;
  for i := 1 to length (Result) do Begin
    case Result [i] of
     '&': Result [i] := '-';
     '<': Result [i] := '-';
    End;
  End;
End;
En son Battosai tarafından 24 Nis 2009 11:57 tarihinde düzenlendi, toplamda 2 kere düzenlendi.
emrahgs
Üye
Mesajlar: 114
Kayıt: 08 Tem 2008 06:25
Konum: Antalya

Re: Xml "&" ve "<" karakterini nasıl hızlı Replace Yapabilirim ?

Mesaj gönderen emrahgs »

Conari ;
AnsiReplaceText(Text,'From','To') bunu çalıştıramadım

Battosai ;
Ama fuoksiyon string istiyor strings vermem gerek benim yada satırları dönmek
ReplaceCharFast(Memo1.Text,'&','-'); bu şekilde de çalışmıyor
yada be yapamadım
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Re: Xml "&" ve "<" karakterini nasıl hızlı Replace Yapabilirim ?

Mesaj gönderen Battosai »

Fonksiyonu size göre değiştirdim...

Kod: Tümünü seç

Memo1.Text:=ReplaceCharFast(Memo1.Text);
Bu şekilde çalışıyor....
emrahgs
Üye
Mesajlar: 114
Kayıt: 08 Tem 2008 06:25
Konum: Antalya

Re: Xml "&" ve "<" karakterini nasıl hızlı Replace Yapabilirim ?

Mesaj gönderen emrahgs »

Battosai yazdı:Fonksiyonu size göre değiştirdim...

Kod: Tümünü seç

Memo1.Text:=ReplaceCharFast(Memo1.Text);
Bu şekilde çalışıyor....

Hocam Çok Teşkkür Ederim Süper Çalıştı
bende jedinin
JvFindReplace1.ReplaceAll('&', '-');
çözmeye çalışıyodum projeye jedi eklemenin hiç gereği kalmadı performansıda süper
Bu arada Fonksiyondan " '<': Result := '-'; " bu satırı sildim ben bu fonksiyonu xml de kullanacağım için sıkıntı çıkarcak :)
"<" buna yapabileceğimiz bir şey yok gibi duruyo zaten

birde fonksiyonun nasıl işlediğini anlamış değilim :)
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Re: Xml "&" ve "<" karakterini nasıl hızlı Replace Yapabilirim ?

Mesaj gönderen Battosai »

birde fonksiyonun nasıl işlediğini anlamış değilim
Döngüde sırası gelen karakter için atama yapılıyor...Hızlı çalışmasının sebebi baştan sona sadece ileri katar kontrolü yaparak gitmesinden kaynaklanıyor...For döngüsü çok hızlı bir döngüdür...100.000 katarlık bir string olsa dahi hızlı çalışacaktır bu fonksiyon... denemesi bedava...Fakat işin içine karekter değilde örneğin bir kelime değiştirme girerse iş değişir farklı metotlar var bunlar için...conari'nin gönderdiği fonksiyon genelde bu tarz replace işlemleri için kullanılıyor ve strutils unitini uses a eklemeniz icap ediyor...Fakat büyük stringlerde oldukça yavaş çalışır....kısaca durum böyle.
emrahgs
Üye
Mesajlar: 114
Kayıt: 08 Tem 2008 06:25
Konum: Antalya

Re: Xml "&" ve "<" karakterini nasıl hızlı Replace Yapabilirim ?

Mesaj gönderen emrahgs »

Tekrar Tşekkür ederim.
Cevapla