Since you've made a comment that , is the decimal separator in your locale, there is a better option than doing a string-replace of . to ,; tell the Double.Parse() method to use a different number format.
See the MSDN doc for Parse(String s). Especially, note the following:
The s parameter is interpreted using
the formatting information in a
NumberFormatInfo object that is
initialized for the current thread
culture. For more information, see
CurrentInfo. To parse a string using
the formatting information of some
other culture, call the
Double.Parse(String, IFormatProvider)
or Double.Parse(String, NumberStyles,
IFormatProvider) method.
Assuming your current thread culture is using a number format that considers , to be the decimal separator (French/France fr-FR, for example), you must pass an IFormatProvider to the Parse() method that defines . as the decimal separator. Conveniently, the "no culture in particular" culture, CultureInfo.InvariantCulture, does just this.
So this code should parse successfully:
for (int i = 1; i < 7; i++)
{
// Assume the substring of ReadLine() contains "-.23455", for example
var item = Double.Parse(reader.ReadLine(44).Substring(8 * i, 8), CultureInfo.InvariantCulture);
richTextBox1.Text += item.ToString() + "\n";
}
,is the decimal-separator?