%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% bsp05.tex ---
%% Autor           : Herbert Voss <voss@perce.de>
%% Datum           : 2004-04-25 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{filecontents}{dataError.dat}
-0.7 -0.4      0.1 0.5       -0.43 3        0   0.4
 1    4.6     -0.5 0.2        1.2  2.3     -0.2 0.2
 1.7  3.9     -0.1 1          2.7 -1.1     -0.2 0.3
 3.98 -0.7    -0.4 0          4.5  0.7539  -0.5 0.4
\end{filecontents}

\documentclass{article}
%\usepackage{multido}
\usepackage{pstricks}
\usepackage{pst-plot}
\SpecialCoor

\makeatletter
\def\errorLine{\@ifnextchar[{\pst@errorLine}{\pst@errorLine[]}}
\def\pst@errorLine[#1](#2)#3#4{{%
  \def\pst@tempa{#1}
  \ifx\pst@tempa\empty\else\psset{#1}\fi
  \pst@getcoor{#2}\pst@tempA
  \def\@errorMin{#3}
  \def\@errorMax{#4}
  \psline{|-|}(!%
     /yDot \pst@tempA exch pop \pst@number\psyunit div def
     /xDot \pst@tempA pop \pst@number\psxunit div def
     xDot yDot \@errorMin\space add%
    )(!%
     /yDot \pst@tempA exch pop \pst@number\psyunit div def
     /xDot \pst@tempA pop \pst@number\psxunit div def
     xDot yDot \@errorMax\space add)
}}
%
\def\GetCoordinates#1{\expandafter\GetCoordinates@i#1}
\def\GetCoordinates@i #1{\GetCoordinates@ii#1}
\def\GetCoordinates@ii#1 #2 #3 #4 #5 #6 #7 #8 {%
  \DoCoordinate{#2}{#4}%
  \errorLine[linecolor=red, linewidth=2pt](#2,#4){#6}{#8}% <<<<<
  \@ifnextchar D{\GetCoordinates@ii}{}%
}
\makeatother

\parindent=0pt
\pagestyle{empty}
\begin{document}

\psset{dotscale=2,unit=1cm}%
  \readdata{\Data}{dataError.dat}
\begin{pspicture}(-1,-2)(5,5.5)
  \psaxes(0,0)(-1,-2)(5,5)
  \def\DoCoordinate#1#2{\psdot(#1,#2)}%
  \GetCoordinates{\Data}
\end{pspicture}

%\show\Data% for the logfile

\end{document}

