when you split $row, you suppose "it's OK" and you try to read 3 elements in the array.

if $row is empty, split($row,";") returns an array with only one element ($temp[0]) and $temp[1] fails with "array reference out of bounds". This is normal.

With the test, you bypass incorrect lines.

An other solution is to add a test after splitting, to verify that the array has enough elements :

Code:
For Each $row In $readfile
$temp = split($row,";")
if UBound($temp) < 2
;-- bad line --
else
$readCSV[$i,0] = $temp[0]
$readCSV[$i,1] = $temp[1]
$readCSV[$i,2] = $temp[2]
endif
$i = $i + 1
Next

_________________________
Christophe