Replace(rs("detay"),"detay", ExecuteGlobal(txtoku(okunan)))
şeklinde deneyin?
Merhaba
ExecuteGlobal txtoku(okunan) şeklinde txtden veri okuma fonksiyonum var.
Ben replace yöntemiyle detay yazan yerlerde ExecuteGlobal txtoku(okunan) fonksiyonunu çalıştırmaya çalışıyorum.
Replace(rs("detay"),"detay",ExecuteGlobal txtoku(okunan) ) şeklinde replace etmeye çalıştığımda
Microsoft VBScript derleme hatası (0x800A03EE)
')' gerekli
hatasını alıyorum.Bu sorunu nasıl çözebilirim?
Replace(rs("detay"),"detay", ExecuteGlobal(txtoku(okunan)))
şeklinde deneyin?
"oturduğum mahallenin yolları çamurluydu, boyalı ayakkabı giysem bile, o yollardan geçtikten sonra çamurlanmamaları mümkün değildi. hayatım da böyle." yılmaz güney
http://www.sipidik.com
absconder(Hızır) teşekkürler dediğin şekilde problemi çözdümYalnız şu anda farklı bir problem yaşıyorum.
function yer(komut)
Dim isle,kod,i
komut=replace(komut,"<%=","<%response.write ")
komut=replace(komut,"<%","[+a+][ASP]")
komut=replace(komut,"%"&">","[/ASP][+a+]")
isle=split(komut,"[+a+]")
kod=""
for i=0 to ubound(isle)
if left(isle(i),5)="[ASP]" then
isle(i)=replace(isle(i),"[ASP]","")
isle(i)=replace(isle(i),"[/ASP]","")
kod=kod&isle(i)&vbcrlf
else
isle(i)=replace(isle(i),chr(34),chr(34)&chr(34))
isle(i)=replace(isle(i),vbcrlf,"")
isle(i)=replace(isle(i),chr(10),"")
isle(i)=replace(isle(i),chr(13),"")
kod=kod&"response.write "&chr(34)&isle(i)&chr(34)&vbcrlf
end if
next
yer=kod
set isle=nothing
set kod=nothing
set i=nothing
end function
Dim fso,oku,okunan
Set fso = server.CreateObject("Scripting.filesystemobject")
Set oku = fso.OpenTextFile(server.MapPath("txtdosyasi.txt"))
okunan=oku.Readall
Dim dene
dene=ExecuteGlobal(yer(okunan))
Bu şekilde tanımlama yaptıgımda ekrana direk olarak yazdırıyor. Ben ExecuteGlobal(yer(okunan)) fonksiyonunu dene değişkenine tanımlamak daha sonra replace içinde kullanmak istiyorum.Bunu nasıl yapabilirim?
tahminim, ExecuteGlobal fonksiyonunuz return etmeyip direk response.write benzeri bir şeyle yazdırmakta olduğunuz.
yaparsanız dene değişkeninin değeri "özgür - özgür" olacaktır. bu değişkeni sonra istediğiniz yerde kullanabilirsiniz.Kod:function ExecuteGlobal(val) ExecuteGlobal = val & " - " & val end function dim dene dene = ExecuteGlobal("özgür")
tabi ExecuteGlobal fonksiyonunuzu yazarsanız daha net birşeyler söyleyebilirim.
"oturduğum mahallenin yolları çamurluydu, boyalı ayakkabı giysem bile, o yollardan geçtikten sonra çamurlanmamaları mümkün değildi. hayatım da böyle." yılmaz güney
http://www.sipidik.com
Abs conder; kodlarım şu:
function txtoku(komut)
Dim isle,kod,i
komut=replace(komut,"<%=","<%response.write ")
komut=replace(komut,"<%","[+a+][ASP]")
komut=replace(komut,"%"&">","[/ASP][+a+]")
isle=split(komut,"[+a+]")
kod=""
for i=0 to ubound(isle)
if left(isle(i),5)="[ASP]" then
isle(i)=replace(isle(i),"[ASP]","")
isle(i)=replace(isle(i),"[/ASP]","")
kod=kod&isle(i)&vbcrlf
else
isle(i)=replace(isle(i),chr(34),chr(34)&chr(34))
isle(i)=replace(isle(i),vbcrlf,"")
isle(i)=replace(isle(i),chr(10),"")
isle(i)=replace(isle(i),chr(13),"")
kod=kod&chr(34)&isle(i)&chr(34)&vbcrlf
end if
next
txtoku=kod
set isle=nothing
set kod=nothing
set i=nothing
end function
Dim fso,oku,okunan
Set fso = server.CreateObject("Scripting.filesystemobject")
Set oku = fso.OpenTextFile(server.MapPath("txtdosyasi.txt"))
okunan=oku.Readall
Dim dene
dene=txtoku(okunan)
icerikler=Replace(icerikler,"detay",dene) kodu bu şekilde yazdırdığımda txtdosyasi.txt deki kodları HTML formatında yazdırıyor.Benim kodları ASP olarak çalıştırmam gerektiğinden icerikler=Replace(icerikler,"detay",ExecuteGlobal( dene)) şeklinde bir yapı kullanıyorum.ancak bu seferde "Deyim gerekli" hatasını veriyor.
hmm, ben ExecuteGlobal'in internal bir fonksiyon olduğunu atlamışım
o zaman, txtdosyasi.txt dosyasında yazılanlar önem kazanır. txt dosyada muhtemelen ASP kodlarınız ve response veren işlemler sozkonusu. dolayısı ile ExecuteGlobal ile verilen kod doğrudan çalıştığından geriye bir değer döndermiyor.
txt dosyanızda neler yazıyor acaba? template uygulamaları benzeri bir uygulama mı yapıyorsunuz? txt dosyanızın yapısını değiştirmeniz mümkün mü?
yapılmıyor diye bir şeyin olduğuna inanmıyorum ama yönteminizi gözden geçirmenizi önerebilirim.
"oturduğum mahallenin yolları çamurluydu, boyalı ayakkabı giysem bile, o yollardan geçtikten sonra çamurlanmamaları mümkün değildi. hayatım da böyle." yılmaz güney
http://www.sipidik.com
Tahmin ettiğiniz gibi bir template yapı üzerinde çalışıyorum.Bende çözümü olmadığına inanmıyorum.Çünkü kodu;
kod=kod&chr(34)&isle(i)&chr(34)&vbcrlf değilde kod=kod&"response.write "&chr(34)&isle(i)&chr(34)&vbcrlf
şeklinde kullandığımda sonucu yazdırıyor, ancak bu seferde değişkene atayamıyorum ve yapımda bir döngü söz konusu olduğundan birden fazla sonuç yazıyor.Yani yapmam gereken asıl txtoku fonksiyonunun içeriğini bir değişkene atamak .![]()
response.write icerik yazdığımda HTML formatında kodları yazdırıyorum.
Ancak Executeglobal icerik yazdığımda Deyim Gerekli hatası alıyorum ne yapmalıyım?