Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/12/2004, 01:42
Tristam
 
Fecha de Ingreso: septiembre-2004
Mensajes: 67
Antigüedad: 19 años, 7 meses
Puntos: 0
rangos de String ???

Buenas a tod@s;

Estoy tratando de averiguar este tipo de error, que no entiendo pq resulta; les explico;
Yo tengo una clase lectora de datos con extension dbf, y bueno,en la declaracion del main declaro:
Object obj[] = null;
y dentro asigno la variable obj[] a un metodo:
obj = reader.nextRecord();
El metodo nextRecord, contiene esto:
public Object[] nextRecord()
throws JDBFException
{
if(!hasNextRecord())
throw new JDBFException("No more records available.");
Object aobj[] = new Object[fields.length];
int i = 1;
for(int j = 0; j < aobj.length; j++)
{
int k = fields[j].getLength();
StringBuffer stringbuffer = new StringBuffer(k);
stringbuffer.append(new String(nextRecord, i, k));
aobj[j] = fields[j].parse(stringbuffer.toString());
i += fields[j].getLength();
}

try
{
stream.readFully(nextRecord);
}
catch(EOFException eofexception)
{
nextRecord = null;
}
catch(IOException ioexception)
{
throw new JDBFException(ioexception);
}
return aobj;
}


Y sin embargo al rellenar los datos en "aobj" me mete en indices distintos los valores del fichero con extension dbf, es decir, si tenemos 2 valores:

"AA" y "BB", lo q hace es tratarmelo como si fuera "A" y "ABB", lo entienden??

Cuando lo q necesito es q meta "AA" y "BB",
De tal manera q decidi por cambiar el indice de la variable i, decidi ponerlo a 0 y me repetia el problema incrementado una posicion,
"" y AABB" entonces,, al contrario,,,deberia ser la solucion ---- i=2, y es ahi donde obtengo el error:

java.lang.StringIndexOutOfBoundsException: String index out of range: 329
at java.lang.String.checkBounds(String.java:287)
at java.lang.String.<init>(String.java:370)
at com..jdbf.DBFReader.nextRecord(DBFReader.java:167)
at com.cmbd.Main.main(Main.java:150)

Pueden ayudarme please...????

GRAcias por todo!!!