* Need help Implementing a script (or macro)

E

ern

My command-line application must be able to run text scripts (macros).
The scripts have commands, comments, and flags. Comments are ignored
(maybe they are any line beginning with " ; ") Commands are executed
as if the user *manually* typed them in the console. Flags are special
commands that tell the program where to BREAK, LOOP, START. A typical
script may look like this:

; This is my script. It will test my mp3 player...
START:

set battery voltage 1.5
begin thread

LOOP: ; here I will test individual tracks
play
skip track

BREAK: ; at this point, I go back up to find "LOOP"

To launch the script, the user will type:

"script <pathname>"

where pathname is where the script lives. So far, I have the entire
text file in a char * buffer.

Now I need to do several things....

1. After the script begins, the USER needs a way to halt execution of
the script. I was thinking any key press would do. Pseudocode looks
like this:

while("user hasn't pressed any key"){ //continue executing script...

I want the script to stop immediately after the user presses a key, so
I 'm not sure a while loop is the best way... perhaps some kind of
thread...

Need help implementing that logic....

2. I need a way to seperate each line in the text file. I was
thinking of putting each line in an element of an array. I could have
two arrays:

char * start[SIZE];
char * loop[SIZE];

The first holds the commands to execute once, and the second holds the
commands to repeat (not sure if the syntax is correct there... ? I
need an array of strings...). Once I have the commands, I can just
execute them one at a time until I get the flag to stop (#1). But how
would I parse the commands into the arrays from the "buffer" ?
 
M

Mark McIntyre

My command-line application must be able to run text scripts (macros).
1. After the script begins, the USER needs a way to halt execution of
the script.

Suspend or terminate? The latter is easy...
I was thinking any key press would do.

you can't do this in standard C, as there's no way to do a continuous
background check for something else happening in parallel to your main
thread. Ask in a newsgroup specific to your platform for information
on threading.
2. I need a way to seperate each line in the text file.

read up on strtok and sscanf.

Mark McIntyre
 
C

Chuck F.

ern said:
My command-line application must be able to run text scripts
(macros). The scripts have commands, comments, and flags.
Comments are ignored (maybe they are any line beginning with
";") Commands are executed as if the user *manually* typed them
in the console. Flags are special commands that tell the
program where to BREAK, LOOP, START. A typical script may look
like this:

Just use the innate script ability of your shell. In on Linux you
probably need to read up on bash. If on Windoze read up on batch
language, or better install 4dos for a better system.

This is all OT on c.l.c.

--
"If you want to post a followup via groups.google.com, don't use
the broken "Reply" link at the bottom of the article. Click on
"show options" at the top of the article, then click on the
"Reply" at the bottom of the article headers." - Keith Thompson
More details at: <http://cfaj.freeshell.org/google/>
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,054
Latest member
TrimKetoBoost

Latest Threads

Top