Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: st: -args- how to flag when missing or too many arguments
From
Austin Nichols <[email protected]>
To
[email protected]
Subject
Re: st: -args- how to flag when missing or too many arguments
Date
Thu, 21 Mar 2013 17:54:01 -0400
John Antonakis <[email protected]>:
You might also want to step through various conditions and then issue
a more informative error message at the end, e.g. consider adapting
this approach:
cap prog drop john
prog john, rclass
version 12
loc err 0
args no_vars df N chi
loc w: word count `no_vars' `df' `N' `chi'
if `w'>4 {
loc err 1
di in red "More than 4 arguments given"
}
foreach v in no_vars df N chi {
cap confirm integer number `=``v'''
if _rc!=0 {
loc err 1
di in red "Arguments must be integers."
}
else if ``v''<0 {
loc err 1
di in red "Arguments must be positive integers."
}
}
if `err'==1 {
di in red "Please enter data after the command" _c
di in red " john as follows: vars df N chi"
exit 198
}
end
On Thu, Mar 21, 2013 at 5:49 PM, daniel klein <[email protected]> wrote:
> John,
>
> I think I would address this with something like this
>
> cap pr drop john
> pr john
> vers 12.1
>
> args a b c d
> if !inrange(`: word count `0'', 1, 4) {
> di as err "Please enter data after " ///
> "the command john as follows: vars df N chi"
> e 198
> }
> numlist "`0'" ,int r(>0)
>
> end
>
> Best
> Daniel
> --
> Hi:
>
> I am writing a program and would like Stata to return an error if an
> argument is missing or there are too many of them.
>
>
> For example, if an argument is not an integer, the below will return an error:
>
>
> program define john, rclass
> version 12
> args no_vars df N chi
>
> if `no_vars'<0 | `df'<0 | `N'<0 | `chi'<0 {
> di in red "You have to use integers."
> exit 498
> }
> end
>
> Now, how do I make Stata display:
>
> di in red "Please enter data after the command john as follows: vars df N chi"
>
>
> .....in cases where (a) there is a missing value (i.e., the user
> missed putting 4 numbers) and (b) if the user provides too many
> numbers (i.e., 5 instead of 4).
*
* For searches and help try:
* http://www.stata.com/help.cgi?search
* http://www.stata.com/support/faqs/resources/statalist-faq/
* http://www.ats.ucla.edu/stat/stata/