Jump to content

_Stringbetween Kodunun Ams'de Karşılığı


asmazh
 Share

Recommended Posts

Es Selamünaleyküm.

AutoİT'de [color="#0000FF"]_StringBetween()[/color] diye bir kod mevcut. Görevi: Bir 'string'de 2 karakterin arasında bulunan stringleri almak. Şöyle açımlarsam daha iyi anlarsınız.

[color="#FF0000"]$String[/color] [color="#FF0000"]= [/color][color="#708090"]"Bu bir denemedir dostum"[/color]
[color="#FF0000"]$StringBetween[/color] [color="#FF0000"]= [/color][color="#0000FF"]_StringBetween[/color]([color="#FF0000"]$String[/color], [color="#708090"]"Bu"[/color],[color="#708090"] "Dostum"[/color])

Burada $StringBetween " bir denemedir " dönecektir. Bu kodun karşılığı AMS'de yok mu acaba? Ya da yapılamaz mı?

Ayrıca AutoİT'de bulunan ve büyük bir derya olan [color="#0000FF"]StringRegExp()[/color] ve [color="#0000FF"]StringRegExpReplace()[/color] kodları AMS'de yok mu? Eğer bu kodlar yoksa AMS ile string işleri pek yapılamaz diye düşünüyorum. İnşallah öyle değildir.

Teşekkür ederim.
Link to comment
Share on other sites

[code]
function String.Between(string,ilk,son)
if(string ~="") then
ilk_s = String.Find(string, ilk, 1);
if(ilk_s ~= -1) then
ilk_c = #ilk;
son_s = String.Find(string, son, 1);
son_c = #son;
return String.Mid(string, ilk_s+ilk_c, son_s-(ilk_s+ilk_c))
else
return 0;
end
else
return 0;
end
end
[/code]

Kullanımı: [code]String.Between(string,ilk,son);[/code]


işinize yarar sanırım.. Regexler lua kalıbıyla kullanılıyor.. ams nin kendisinde yok ancak lua kalıpları çalışıyor..

Edited by Kazım
Link to comment
Share on other sites

Çok sağ ol Kazım.

Bunu bir de Array (tablo) şeklinde alamazmıyız. Diyeceksin ki, ne gereği var? Şöyle açıklayayım.
Elimizde şöyle bir string olsun:

Kerbela=0001
Kalaba=0002
Kol kola=0003
Kukla=0004

Kullanıcı ilk karakteri "la=" gösterdi. Son karakteri de "@crlf" yani "\n" böyle gösterdi. Görüldüğü gibi bu şartlara uyan 4 string var. Bunları tablo şeklinde almak istiyorum.

Ben AMS'de yeni bir insanım. Şu kodunu da tam olarak anlayamadım: #ilk . Buradaki "#" karakteri 'string'in karakter sayısını mı istiyor?

Edited by asmazh
Link to comment
Share on other sites

[quote name='asmazh' date='08 July 2012 - 20:01 ' timestamp='1341766873' post='1219745']
Çok sağ ol Kazım.

Bunu bir de Array (tablo) şeklinde alamazmıyız. Diyeceksin ki, ne gereği var? Şöyle açıklayayım.
Elimizde şöyle bir string olsun:

Kerbela=0001
Kalaba=0002
Kol kola=0003
Kukla=0004

Kullanıcı ilk karakteri "la=" gösterdi. Son karakteri de "@crlf" yani "\n" böyle gösterdi. Görüldüğü gibi bu şartlara uyan 4 string var. Bunları tablo şeklinde almak istiyorum.

Ben AMS'de yeni bir insanım. Şu kodunu da tam olarak anlayamadım: #ilk . Buradaki "#" karakteri 'string'in karakter sayısını mı istiyor?
[/quote]

regex lerle ilgili bir kaynak bulsam bu sorunun cevabını direkt vereceğim. araştırıyorum. tablo olarak döndürmeyi bi deneyeyim :). 2. soru ise evet # karakter sayısını alır :)

Edited by Kazım
Link to comment
Share on other sites

[code]
function String.Between(string,ilk,son)
tFinded={};
if(string ~="") then
ilk_s =1;
index=1;
while(ilk_s>0) do
ilk_s = String.Find(string, ilk, index);
son_s = String.Find(string, son, index);
if(ilk_s>0) then
find = String.Mid(string, ilk_s+#ilk, son_s-(ilk_s+#ilk));
Table.Insert(tFinded, Table.Count(tFinded)+1,find);
end
index = son_s+#son
end

return tFinded;

else
return 0;
end
end
[/code]

Regexleri bulana kadar idare eder.. bi hatası çıkana kadar hatasız çalışıyor :).. tablo biçiminde döndürür...

Şunda Denedim

[code]a = "en1yor en2yor en3yor en4yor yor";
c = String.Between(a,"en", "yor");

for i,v in pairs(c) do

Dialog.Message("",v);

end
[/code]

Kolay Gelsin

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...