2015-11-26 19 views
6

Cortana XML dosyam var ve bir sayı girmem gerekiyor. Bir numaraya dönüştürebildiğimden emin olmak için ne yapmalıyım?Cortana ile ayrıştırma numarası

<Command Name="AddMoney"> 
    <Example> Add 10 dollars </Example> 
    <ListenFor> add {amount} {currency} </ListenFor> 
    <Feedback> Adding some money </Feedback> 
    <Navigate/> 
</Command> 

<PhraseList Label="currency"> 
    <item>dollar</item> 
    <item>euro</item> 
    <item>pound</item> 
</PhraseList> 

<PhraseList Label="amount"> 
</PhraseList> 

cevap

4

Numaraları almanın bir yolunu buldum, ancak bu mükemmel değil.

<PhraseTopic Label="amount" Scenario="Commands"> 
    <Subject>Phone Number</Subject> 
</PhraseTopic> 

Not I PhraseTopic yerine PhraseList kullanıyorum. Burada en iyi Scenario hangisinin olduğunu bilmiyorum amasetinden daha iyi sonuçlar elde etmek için Commands buldum. PhraseTopic etiketi konularını çalışırken

, otomatik tamamlama özelliği en umut verici Date/Time, Addresses ve Phone Number vardı birkaç seçenek gösterdi ... bazı garip nedenle tüm PhraseList etiketleri sonra yerleştirilmelidir. Birden çok konuyla uğraşırken asla bir eşleşme yapamadım, ancak "Telefon Numarası" (veya böyle bir seçenek olmasa bile sadece "Numara") ile tutarlı bir şekilde sayı değerleri elde edebildim.

Rakamlar arası sayı dizileri, bu yüzden sadece int.TryParse(myText, out myNumber)'a ihtiyacım var ve onu kullanın veya "geçersiz sayı girişi" olarak bir şey söyle.

bile konu ve senaryo kısıtlamalarla, herhangi bir olay burada girilebilir unutmayın ... folowing çalışacaktır:

"Hey Cortana, MyAppName add blah blah blah dollars" 

Ve miktar anlamıyla olacaktır "blah blah blah"