package core; import java.io.InputStreamReader; import javax.microedition.rms.RecordStoreException; public class Model { /* Magic Numbers: End Of Line = 10 End Of File = -1 Space = 32 Carriage Return = 13 RECORD_SEPARATOR = '|'; VALUE_SEPARATOR = '~'; */ /** Complete record minus de id van de record */ public String record; /** Inputstream gebruikt voor lezen databases */ private InputStreamReader isr; /** * Zet de record (uit de RMS indien update anders database) als een string (minus ID) * @param pageId De pagina die word opgevraagd * @param start De start positie waar de pagina gevonden kan worden (karakter zoveel) * @param size De lengte van dit record */ public void setup(int start, int size) throws Exception { isr = null; int max = 100; // max. records per database file for (int i = max; i < 900; i += max) { if (Controller.pageId <= i) { isr = new InputStreamReader(getClass().getResourceAsStream("/databases/" + (i-max+1) + "_" + i + ".db")); break; } } if (start != 1) { isr.skip(start); } int dataLength = size - parseTitle() - 1; // View Data char[] data = new char[dataLength]; isr.read(data, 0, dataLength); isr.close(); record = new String(data).trim(); //trim verwijdert linebreaks } }