📄 datarecorder.java
字号:
if (strOID.equals(""))
return;
StringParser sParser;
String strValue;
storeName = "rsRecordBook";
xRsIO = new DataRsIO(storeName);
xRsIO.open(storeName);
RecordEnumeration eNumer = xRsIO.getRecordEnum();
for (int i = 0; i < xRsIO.getNumRecords(); i++)
{
String tmp = "";
int rID = -1;
try {
rID = eNumer.nextRecordId();
tmp = xRsIO.query(rID);
}
catch (Exception ex) {
}
sParser = new StringParser(tmp);
if (sParser.getValue("OID").equals(strOID))
{
strValue = "OID=" + strOID + SEPARATOR;
strValue += "SceneName=" + SEPARATOR;
strValue += "Date=" + SEPARATOR;
strValue += "Time=" + SEPARATOR;
xRsIO.update(rID, strValue);
}
}
xRsIO.close();
xRsIO = null;
}
public void updRcdBook(String strOID)
{
if (strOID.equals(""))
return;
StringParser sParser;
String strValue;
storeName = "rsRecordBook";
xRsIO = new DataRsIO(storeName);
xRsIO.open(storeName);
RecordEnumeration eNumer = xRsIO.getRecordEnum();
for (int i = 0; i<xRsIO.getNumRecords(); i++)
{
String tmp = "";
int rID = -1;
try {
rID = eNumer.nextRecordId();
tmp = xRsIO.query(rID);
}
catch (Exception ex) {
}
sParser = new StringParser(tmp);
if (sParser.getValue("OID").equals(strOID))
{
Calendar cald = Calendar.getInstance();
strValue = "OID=" + strOID + SEPARATOR;
strValue += "SceneName=" + SceneLib.scenes[SceneLib.currentSceneIndex].getName() + SEPARATOR;
strValue += "Date=" + cald.get(Calendar.MONTH)+"-"+cald.get(Calendar.DAY_OF_MONTH) + SEPARATOR; //cald.get(Calendar.YEAR)+"-"
strValue += "Time=" + cald.get(Calendar.HOUR)+":"+cald.get(Calendar.MINUTE) + SEPARATOR; //+":"+cald.get(Calendar.SECOND)
xRsIO.update(rID, strValue);
}
}
xRsIO.close();
xRsIO = null;
}
private void delAllRs(String inStoreName)
{
storeName = inStoreName;
xRsIO = new DataRsIO(storeName);
xRsIO.open(storeName);
xRsIO.clearAll();
xRsIO.close();
xRsIO = null;
}
public String[] getRecordString(String inStoreName)
{
storeName = inStoreName;
xRsIO = new DataRsIO(storeName);
xRsIO.open(storeName);
DataRsCompare compare = new DataRsCompare();
RecordEnumeration eNumer = xRsIO.getRecordEnum(null, compare);
retString = new String[eNumer.numRecords()];
int rId = -1;
for (int i=0; i<retString.length; i++)
{
try {
rId = eNumer.nextRecordId();
}
catch (InvalidRecordIDException ex) {
ex.printStackTrace();
}
retString[i] = "ID=" + rId + SEPARATOR + xRsIO.query(rId);
//System.out.println(retString[i]);
}
xRsIO.close();
xRsIO = null;
return retString;
}
public String[] getRcdByFilter(String inStoreName, String strOID)
{
storeName = inStoreName;
xRsIO = new DataRsIO(storeName);
xRsIO.open(storeName);
//System.out.println(xRsIO.getStoreName());
DataFilter f = new DataFilter(strOID);
RecordEnumeration eNumer = xRsIO.getRecordEnum(f, new DataRsCompare()); //要排序
retString = new String[eNumer.numRecords()];
int rId = -1;
for (int i=0; i < retString.length; i++)
{
try {
rId = eNumer.nextRecordId();
//System.out.println(rId + " " + i);
}
catch (InvalidRecordIDException ex) {
ex.printStackTrace();
}
retString[i] = "ID=" + rId + SEPARATOR + Tools.getUTFStr(xRsIO.queryByRId(rId));
}
xRsIO.close();
xRsIO = null;
return retString;
}
public void delRcdByFilter(String inStoreName, String strOID)
{
storeName = inStoreName;
xRsIO = new DataRsIO(storeName);
xRsIO.open(storeName);
DataFilter f = new DataFilter(strOID);
xRsIO.delete(f, null);
/*
RecordEnumeration eNumer = xRsIO.getRecordEnum(f, null);
int rId = -1;
for (int i=0; i < xRsIO.getNumRecords(); i++)
{
try {
rId = eNumer.nextRecordId();
}
catch (InvalidRecordIDException ex) {
ex.printStackTrace();
}
if (rId != -1)
xRsIO.delete(rId);
}
*/
xRsIO.close();
xRsIO = null;
}
public String[] getRcdShowLine()
{
String[] str = null;
String[] tmp = this.getRecordString("rsRecordBook");
if (tmp.length>0)
{
str = new String[tmp.length];
StringParser parser = null;
String strScence = "";
String strDate = "";
String strTime = "";
for (int i = 0; i < tmp.length; i++)
{
parser = new StringParser(tmp[i].trim());
str[i] = parser.getValue("OID")+ ". ";
strScence = parser.getValue("SceneName");
strDate = parser.getValue("Date");
strTime = parser.getValue("Time");
if (!strScence.equals(""))
{
str[i] += strScence;
str[i] += " " + strDate;
str[i] += " " + strTime;
}else
str[i] += " <没有记录> ";
}
}
System.out.println("getRcdShowLine return");
return str;
}
/*
private void openRsIO(String strStoreName)
{
if (xRsIO == null)
xRsIO = new DataRsIO(strStoreName);
else
if (xRsIO.getStoreName() != strStoreName)
{
System.out.println(xRsIO.getStoreName() + " " + strStoreName);
xRsIO.close();
xRsIO = new DataRsIO(strStoreName);
}
}
*/
public String getStorName()
{
return storeName;
}
class DataRsCompare implements RecordComparator
{
public int compare(byte[] byteArray, byte[] byteArray1)
{
int intOID1 = 0;
int intOID2 = 0;
StringParser parser;
parser = new StringParser(Tools.getUTFStr(byteArray));
intOID1 = Integer.parseInt(parser.getValue("OID").trim());
parser = new StringParser(Tools.getUTFStr(byteArray1));
intOID2 = Integer.parseInt(parser.getValue("OID").trim());
//System.out.println("str1="+intOID1+" str2="+intOID2);
if (intOID1 > intOID2)
return RecordComparator.FOLLOWS;
else if (intOID1 < intOID2)
return RecordComparator.PRECEDES;
return RecordComparator.EQUIVALENT;
}
}
class DataFilter implements RecordFilter
{
String gStrOID;
public DataFilter(String OID)
{
gStrOID = OID;
}
public boolean matches(byte[] byteArray)
{
StringParser parser = new StringParser(Tools.getUTFStr(byteArray));
String strOID = parser.getValue("OID");
if (gStrOID.equals(strOID))
return true;
else
return false;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -