void read(BufferedReader isr) throws IOException {
  String Line=isr.readLine();
  if (Line == null)   return;
  int delta=0;
  for (int i=0; i < n; i++) {
    int n1=fieldPosition[i] - delta;
    int n2=fieldPosition[i + 1] - delta;
    if (n1 > 80) {
      delta+=80;
      n1-=80;
      n2-=80;
      Line=isr.readLine();
    }
    String S;
    if (Line == null) {
      break;
    }
    if (n1 >= Line.length())     S="";
 else     if (n2 < Line.length())     S=Line.substring(n1,n2);
 else     S=Line.substring(n1);
    if (n2 > 80) {
      delta+=80;
      n2-=80;
      Line=isr.readLine();
      if (Line == null) {
        break;
      }
      if (n2 < Line.length())       S+=Line.substring(0,n2);
 else {
        S=Line;
        Debug.message("e00","??" + S);
      }
    }
    try {
switch (fieldType[i]) {
case 20:
        stringField[i]=S;
      break;
case 30:
case 50:
    intField[i]=Integer.parseInt(S.trim());
  break;
case 60:
floatField[i]=Float.parseFloat(S.trim());
}
}
 catch (NumberFormatException e) {
if (!Line.startsWith("EOI")) {
Debug.message("e00","E00:parserr " + i + " "+ fieldPosition[i]+ " "+ fieldPosition[i + 1]+ " "+ S);
Debug.message("e00",">" + Line);
}
}
}
}

void read ( BufferedReader isr ) throws IOException { String Line = isr . readLine ( ) ; if ( Line == null ) return ; int delta = 0 ; for ( int i = 0 ; i < n ; i ++ ) { int n1 = fieldPosition [ i ] - delta ; int n2 = fieldPosition [ i + 1 ] - delta ; if ( n1 > 80 ) { delta += 80 ; n1 -= 80 ; n2 -= 80 ; Line = isr . readLine ( ) ; } String S ; if ( Line == null ) { break ; } if ( n1 >= Line . length ( ) ) S = "" ; else if ( n2 < Line . length ( ) ) S = Line . substring ( n1 , n2 ) ; else S = Line . substring ( n1 ) ; if ( n2 > 80 ) { delta += 80 ; n2 -= 80 ; Line = isr . readLine ( ) ; if ( Line == null ) { break ; } if ( n2 < Line . length ( ) ) S += Line . substring ( 0 , n2 ) ; else { S = Line ; Debug . message ( "e00" , "??" + S ) ; } } try { switch ( fieldType [ i ] ) { case 20 : stringField [ i ] = S ; break ; case 30 : case 50 : intField [ i ] = Integer . parseInt ( S . trim ( ) ) ; break ; case 60 : floatField [ i ] = Float . parseFloat ( S . trim ( ) ) ; } } catch ( NumberFormatException e ) { if ( ! Line . startsWith ( "EOI" ) ) { Debug . message ( "e00" , "E00:parserr " + i + " " + fieldPosition [ i ] + " " + fieldPosition [ i + 1 ] + " " + S ) ; Debug . message ( "e00" , ">" + Line ) ; } } } }
read a record according with the structure described in thi e00record
