Jump to content

Html Dosyasından Veri Çekme


prototype
 Share

Recommended Posts

Merhaba arkadaşlar html dosyasından veriçekme konusunda yardımınıza ihtiyacım var. Forumda araştırdım öğreniğini bulamadım ve nasıl yapacağımı bilemediğim için bi ön çalışmada yapadım. Htmlden belli bir veriyi çekip bunu input a veya labele aktarma işlemini yapamıyorum. Varsa bi kod çalışma falan paylaşabilirseniz çok sevinirim.

Link to comment
Share on other sites

Html dosyasının asıl görünümü bu

http://warrock-stats.com/index.php?site=stats&nickname=pwpgeneral

 

bu sayfayı bilgisayara indirip dosyada  bulunan Player Main Data ve Player Ranks bölümündeki bilgileri çekip labele aktarmam gerek.

 

Html dosyasını indirmek için;
http://www.fileden.com/files/2012/6/29/3321548//htmlfile.rar

Link to comment
Share on other sites

mantığı öğrenmeniz için küçük bir örnek hazırladım. Bu örnek o sayfadaki sadece Level ve Experience'i çekiyor. Buna bakarak diğerlerinide yaparsınız. Biraz karışık ama bildiğim tek yol bu. kodlara açıklamada yazdım.

 

http://www.mediafire.com/?by5khs5ug6x5e74

 

HTTP.Download("http://warrock-stats.com/index.php?site=stats&nickname=pwpgeneral", _TempFolder .. "\\stats.txt", MODE_TEXT, 20, 80, nil, nil, nil)
local metin = TextFile.ReadToString( _TempFolder .. "\\stats.txt")
levelara = String.Find(metin, "bold;\">Level<", 1, false) -- level sayısından önceki benzersiz bir metin lazım. ben bunu seçtim önce bu metnin kaçıncı karakterde başladığını buluyoruz. 
-- bulduktan sonra level sayısını kopyalamak için yukardaki metnin karakter sırasına +48 ekleyerek leveli buluyoruz. çünkü level sayısı yukardaki metinden 48 karakter sonra
level = String.Mid(metin, levelara+48, 2) 
Input.SetText("Input1", level) -- inputa yazdirdik
-- şimdi xp yi alalım
-- xp den önceki metni bulalım. yani şu: Experience
xpara = String.Find(metin, "Experience", levelara, false)
-- xp'de yazan karakter sayısı değişken olduğu için ondan sonraki metnide alalım
xp_bitis_ara = String.Find(metin, "XP</div>", xpara, false)
-- line"> karakter sayısı 46, XP</div> kaçıncı karakterdeyse arasını alacağız. aradaki farkı bulalım bu bize kaç karakter kopyalayacağımızı söyleyecek
aralik = xp_bitis_ara-(xpara+46)
-- şimdi bu karakterleri kopyalayalım
xp = String.Mid(metin, xpara+46, aralik)
Input.SetText("Input2", xp) -- inputa yazdirdik
Link to comment
Share on other sites

KintaRo üstad burada anlamadığım tek şey karakter sayısı onu nasıl sayıcaz onu anlamadım. Diyelim 5 harfli bir kelime var ve 4. harfini almak istiyorum öylemi sayıcaz. Senin gösterdiğin koddaki satırı saydım dediğin gibi xp yi almak için 46.  karakterden sonrası denk gelmiyor ?.
Link to comment
Share on other sites

Şimdi bir metin bloğunun içindeki herşeye karakter gözü ile bakın. Sayı, Metin farketmez. String.Find() komutu aradığınız karakterlerin o Metnin kaçıncı karakterinde başladığını söyler size. Eğer bulamazsa -1 döndürür. Burdan yola çıkabilirsiniz.

Link to comment
Share on other sites

  • Editor

Karakter sayısı olmadan alamazsın malesef hocam.Yazının uzunlugunu bulma gibi bir şansınız yok malesef.

 

Kazım kardeşimin string between fonksiyonu vardı ams için onunla olur sanırım.

Edited by pairs
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...