Parsing the data

Hi friends,
I need to parse the following data in the given format and get the desired output. I need a function, which takes the input as a parameter and the desired output will be returned from the function.

INPUT(single parameter as complete string)
A;BCF;DFG;FD

OUTPUT(array each as a individual element)
A BCF DFG FD (in an array)

But the input can be of any length and any number of elements. I mean array size is dynamic.

Can you pleas help me out to do this in shell script.

 
#!/usr/bin/ksh
va=$1
i=0
for var in `echo $va | sed 's/;/ /g'`
do
echo $var
arr[$i]=$var;
i=`expr $i + 1`
done

bash, if elements don't contain spaces :

Array=( ${1//;/ } )

------ EDIT --------
Or, if it contains spaces:

IFS=";"
read -a Array <<<"$1"
oldIFS=$IFS; IFS=\;
Array=( $var )
IFS=$oldIFS

Bash:

IFS=\; read -a Array <<<"$var"

ksh93:

IFS=\; read -A Array <<<"$var"