Ansistring Değişkende & (and) İşareti Sorunu

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Ms_YiLDiRiM
Üye
Mesajlar: 35
Kayıt: 24 Ağu 2010 09:46
Konum: Samsun

Re: Ansistring Değişkende & (and) İşareti Sorunu

Mesaj gönderen Ms_YiLDiRiM »

link:=AnsiReplaceStr(link,'&','&&'); yaptığım zaman showmessage kutusunda tek & gözüküyor, aynısını webbrowser.navigate için de deneyeceğim inşallah çalışır
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Ansistring Değişkende & (and) İşareti Sorunu

Mesaj gönderen mrmarman »

HTTPEncode demek istemiştim. Yanlış yazmışım...

Kod: Tümünü seç

http://www.delphiturkiye.com/forum/viewtopic.php?f=2&t=32268 
linkini sana

Kod: Tümünü seç

http%3A%2F%2Fwww.delphiturkiye.com%2Fforum%2Fviewtopic.php%3Ff%3D2%26t%3D32268
halinde sunar.

HTTPApp'yi uses eklemen lazım.

Kod: Tümünü seç

USES HTTPApp;

procedure TForm1.BitBtn1Click(Sender: TObject);
Var
  a : AnsiString;
begin
  a := 'http://www.delphiturkiye.com/forum/viewtopic.php?f=2&t=32268';
  ShowMessage( HTTPEncode( a ) );
end;
Resim
Resim ....Resim
Ms_YiLDiRiM
Üye
Mesajlar: 35
Kayıt: 24 Ağu 2010 09:46
Konum: Samsun

Re: Ansistring Değişkende & (and) İşareti Sorunu

Mesaj gönderen Ms_YiLDiRiM »

Encode yaptığında showmessage kısmında
http%3A%2F%2Fwww.delphiturkiye.com%2Fforum%2Fviewtopic.php%3Ff%3D2%26t%3D32268

yazıyor ama webbrowsera gönderdiğimde parametre hatası veriyor
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Ansistring Değişkende & (and) İşareti Sorunu

Mesaj gönderen mrmarman »

Delphi 7'de uzun zaman çalıştım. Hiç bu şekilde bir sorunla karşılaşmamıştım. Şimdi elinde Delphi 7 yok Delphi 2007 ve Delphi XE5 var. Onlarda da hata almadığımdan gözlemleyemiyorum.

URL içeriside & işareti olmazsa olmazlardandır. Onun için söz konusu olmaması lazım.

Şimdi bu mesaj ekine bir örnek proje ekledim. Delphi 2007 ile kodlandı. Basit bir kod.

Kod: Tümünü seç

procedure TForm1.BitBtn1Click(Sender: TObject);
Var
  a : AnsiString;
begin
  a := Edit1.Text;
  WebBrowser1.Navigate( a );
  while WebBrowser1.ReadyState <> READYSTATE_COMPLETE do
  begin
    Sleep(1);
    Application.ProcessMessages;
  end;
  ShowMessage('"' + a + '"' + #13 + 'URL''si için Navigasyon tamamlandı...');
end;
Bu EXE'sini tek başına bir çalıştırın. Ondan sonra Delphi 7 ile açıp derleyip yeniden çalıştırın. Farkı gözlemleyin. Fark oluyorsa en kısa zamanda Delphi'nin kurulumunu yenileyin demekten başka bir şey kalmıyor bana.

Resim
Dosya ekleri
WebBrowser_AnsiString_Nav.rar
WebBrowser TEST
(218.26 KiB) 124 kere indirildi
Resim
Resim ....Resim
Ms_YiLDiRiM
Üye
Mesajlar: 35
Kayıt: 24 Ağu 2010 09:46
Konum: Samsun

Re: Ansistring Değişkende & (and) İşareti Sorunu

Mesaj gönderen Ms_YiLDiRiM »

öncelikle şu hatayı verdi ignore ettim
Resim

ardından kendim çalıştırdığımda şu şekilde oldu,

Resim

Allah ıslah etsin benim delphi yi ya :)
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Ansistring Değişkende & (and) İşareti Sorunu

Mesaj gönderen mrmarman »

Dikkat ettiyseniz Navigate etmiş. Yani & işareti Webbrowser için sorun teşkil etmemiş... :idea:

ShowMessage için çözüm basit. Gösterirken her & işaretini && ile değiştirirsiniz olur...
Resim
Resim ....Resim
Ms_YiLDiRiM
Üye
Mesajlar: 35
Kayıt: 24 Ağu 2010 09:46
Konum: Samsun

Re: Ansistring Değişkende & (and) İşareti Sorunu

Mesaj gönderen Ms_YiLDiRiM »

Şunu Fark Ettim Eğer Direk

Kod: Tümünü seç

var 
a:ansistring;
begin
a=' &o';

showmessage(a);
dersem & birleşiyor ve navigate etmiyor ama

Kod: Tümünü seç

var 
a:ansistring;
begin
a=' &o';
edit1.text:=a;

showmessage(edit1.text);
dersem birleşmiyor ve navigate ediyor sizin gönderdiğiniz program bu yüzden çalıştı
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Ansistring Değişkende & (and) İşareti Sorunu

Mesaj gönderen mrmarman »

O zaman sizin AnsiString fonksiyonu sorunlu.
AnsiString ne için lazım olmuştu bilmiyorum ama alternatif bir çözüm bulmadığınız sürece kullanmayın isterseniz.
Resim
Resim ....Resim
Ms_YiLDiRiM
Üye
Mesajlar: 35
Kayıt: 24 Ağu 2010 09:46
Konum: Samsun

Re: Ansistring Değişkende & (and) İşareti Sorunu

Mesaj gönderen Ms_YiLDiRiM »

Çok Teşekkür Ederim Üstadım, Sorunu Başka Şekilde Çözdüm Halen Devam Ediyor Aslında Bu & Meselesi Ama Ben Navigate İçerisinde Javascript:window.location.href = diyerek sorunu çözdüm
theSinan

Re: Ansistring Değişkende & (and) İşareti Sorunu

Mesaj gönderen theSinan »

ben programdan sms gönderdikten sonra kredi sorgulaması yapıyorum
sorgu karşı tarafa düzgün gidiyor ve istediğim sonucu veriyor
ShowMessage dediğiniz gibi & işareti kayboluyor ancak
parametre olarak gönderdiğimde bir sorun yok
işte kredi sorgulama fonksiyonum
editör XE5 c++

Kod: Tümünü seç

 
String message_id, mesaj_url, sMesajSorguCevab;
String  TurkHostMesajDurumSorgulama(String sMesajNo)
		{

		message_id  ="";
		mesaj_url   ="http://www.postaguvercini.com/api_http/querysms.asp?user="+sMesajServisiKullanici+"&password="+sMesajServisiSifre+"&message_id="+sMesajNo;
			try
					{
					Form9->IdHTTP1->Disconnect();
					sMesajSorguCevab = Form9->IdHTTP1->Get(mesaj_url);
					}
					catch(Exception *e  )
					{
					Application->ShowException(e);
					}

			  return sMesajSorguCevab;
		}
Kullanıcı avatarı
yhackup
Üye
Mesajlar: 118
Kayıt: 09 Ağu 2014 09:09
İletişim:

Re: Ansistring Değişkende & (and) İşareti Sorunu

Mesaj gönderen yhackup »

Ms_YiLDiRiM yazdı:yukarıda da belirttiğim gibi böyle oluyor ben elde ettiğim linkteki & işaretini StringReplace yaparak webbrowser'a göndersem olur mu peki?
url encode kısmını açabilir misiniz
benzer bir durumda, youtubede türkçe karakterli arama yaptırmak istemiştim, urlnin devamına yazarak

bir function yapmıştım, functionda replace ile değiştirmiştim. en kısa basit yol bence.

Umarım sorunu yanlış anlamamışımdır.
Çaylak Delphici :D

Yakup ULUTAŞ
Cevapla