Pos veya Ansipos fonksiyonu..

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Re: Pos veya Ansipos fonksiyonu..

Mesaj gönderen Lord_Ares »

arkadaşlar buldum, hocam zaten orada ipucu vermiş aslında göstermiş fakat ben yanlış yapmışım hocam dan özür diliyorum. yardımları için çok teşekkür ediyorum.
bilgi olması açısından açıklıyorum.

bir internet sayfasının kodlarına baktığınızda eğer iki tane form var ise ve bunların içerisindeki nesnelere bilgi göndermek isityorsanız şu şekilde olmalıymış.
hocamın yukarıda verdiği kod ile açmış olduğunuz sayfadaki formları bulabilir daha sonra

Webbrowser1.OleObject.Document.forms.Item(1).Item(0).value := edit1.text;

diyerek o formdaki nesneye bilgi gönderebilirsiniz..

hocam allah seni başımızdan eksik etmesin inşallah sizin gibi birinle tanışma şerefine erişirim.
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Re: Pos veya Ansipos fonksiyonu..

Mesaj gönderen Lord_Ares »

marman hocam, vermiş olduğunuz bu kod ile şu yapılabilirmi,
html parse olayında surekli pos fonksiyonu ile 'href=' tag ini arayıp aldığı değeri bir değişkene kopyalıyoruz.
sizin örnek olarak vermiş olduğunuz kod ile

Memo1.Lines.Add( Format(' WebBrowser1.OleObject.Document.Forms.Item(%d).Elements.Item(%d).Name -> ''%s'' ', [i, j, WebBrowser1.OleObject.Document.Forms.Item(i).Elements.Item(j).Tag(i).name ]) );


şeklinde kullanarak sayfa içerisindeki tagleri ve değerlerini alamazmıyız. yukarıda gösterdiğim şekilde denedim fakat programım kırıldı.
nerede yanlış yapıyorum.

teşekkürler
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Re: Pos veya Ansipos fonksiyonu..

Mesaj gönderen Lord_Ares »

arkadaşlar webbrowserda sayfanın kaynak kodunu alıp arama yaptırıyorum. sorunum şu

sayfanın kaynak kodundan kullanıcı nikleri alıyorum. kullanıcı nikleri ЯOŤΛŚIŻ★ws★KAOS şeklinde özel karakterle yazılmış.
Bunu alıp memo1 yapıştırdığımda şu şekilde çıkıyor ?OT?SIZ?ws?KAOS
bu sorunu nasıl düzeltebilirim.
sozdem
Üye
Mesajlar: 5
Kayıt: 03 Eki 2013 11:32

Re: Pos veya Ansipos fonksiyonu..

Mesaj gönderen sozdem »

ansipos komutunda şöyle bir sıkıntı var:

AnsiPos aradığımız karakterin, aranan string içerisinde varsa kaçıncı karakter olduğunu veriyor, yoksa 0 (sıfır) değerini döndürüyor.
peki aradığımız karakter stringin sıfırıncı karakteri ise?
işte o zamanda 0 (sıfır) değerini döndürüyor.
muratturan
Üye
Mesajlar: 16
Kayıt: 22 May 2009 01:53

Re: Pos veya Ansipos fonksiyonu..

Mesaj gönderen muratturan »

Konuyu Hortlatıyorum... :))
POS -> BÜYÜK KÜÇÜK HARF DUYARLIDIR. "içerik" ile "İçerik" karşılaştırırsan -1 döner.
AnsiPos -> Büyükküçük duyarlı değildir. "belge" ile "BeLgE" aynıdır. ve kelimeyi bulur.

AMA EN ÖNEMLİ VE PROGRAMCILARIN ATLADIĞI PÜF NOKTAYI BELİRTEYİM !!!

AnsiPos -> "içerik" ile "İÇERİK" aynı değildir. -1 döner. Çünkü i harfi büyüyünce I olur. İ olmaz. bu sebeple bir çok programcı Ansipos çalışmıyor sanar.
StringReplace(s, 'i','İ', [rfReplaceAll, rfIgnoreCase]); yapması gerekir. i harfinin büyük versiyonu İ değildir!!! burada ingilizce giriyor devreye. ş ö ü ğ gibi harflerde sorun yok. Sorun sadece " i " ile ilgili..

yazi := "Burada içerik yazdım.";
j:= Ansipos(yazi,'İÇERİK'); /// ekrana -1 yazar.

ama
yazi := "Burada içerik yazdım.";
yazi := StringReplace(yazi, 'i','İ', [rfReplaceAll, rfIgnoreCase]);
yazi := AnsiUpperCase(yazi);
j:= Ansipos(yazi,'İÇERİK'); /// ekrana 8 yazar.

i harfinin büyük halinin I olduğunu bildiğiniz zaman ve Ansipos 'un buna göre arama yaptığını bildiğiniz zaman herşey daha kolay olur. Bu arada tüm string fonksiyonları örneğin Ansiuppercase de dahil, i harfini büyüttüğünde I yapar..

yazi := "Burada içerik yazdım.";
yazi := AnsiUpperCase(yazi); // sonuç => "BURADA IÇERIK YAZDIM" olur...

kolay gelsin..
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Re: Pos veya Ansipos fonksiyonu..

Mesaj gönderen Lord_Ares »

Bu güzel bilgi için teşekkürler emeğine sağlık
Cevapla