Xml "&" ve "<" karakterini nasıl hızlı Replace Yapabilirim ?
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.
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.
Xml "&" ve "<" karakterini nasıl hızlı Replace Yapabilirim ?
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.
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.
Re: Xml "&" ve "<" karakterini nasıl hızlı Replace Yapabilirim ?
Kod: Tümünü seç
AnsiReplaceText(Text,'From','To')
Bir kelimenin anlamını öğretsen bile yeter..



Re: Xml "&" ve "<" karakterini nasıl hızlı Replace Yapabilirim ?
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.
Re: Xml "&" ve "<" karakterini nasıl hızlı Replace Yapabilirim ?
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
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
Re: Xml "&" ve "<" karakterini nasıl hızlı Replace Yapabilirim ?
Fonksiyonu size göre değiştirdim...
Bu şekilde çalışıyor....
Kod: Tümünü seç
Memo1.Text:=ReplaceCharFast(Memo1.Text);
Re: Xml "&" ve "<" karakterini nasıl hızlı Replace Yapabilirim ?
Battosai yazdı:Fonksiyonu size göre değiştirdim...Bu şekilde çalışıyor....Kod: Tümünü seç
Memo1.Text:=ReplaceCharFast(Memo1.Text);
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

Re: Xml "&" ve "<" karakterini nasıl hızlı Replace Yapabilirim ?
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.birde fonksiyonun nasıl işlediğini anlamış değilim
Re: Xml "&" ve "<" karakterini nasıl hızlı Replace Yapabilirim ?
Tekrar Tşekkür ederim.