DBF该乱世妖魔前几次有奖励励的没发,什么意思

您的当前位置: >
航海王强者之路DBF挑战赛实用技巧分享
来源:作者:繁城孤月
航海王强者之路DBF挑战赛实用技巧分享,挑战赛一天3次奖励,7天结算一次排名,12-14点,18-20点是双倍积分奖励。今天给大家攻略是花最少的金币,拿最高的分,领最好的奖励。
一周有21次免费奖励,双倍时间赢了200积分,输了也有100积分。这里让大家每天花100金买1次奖励,一周就有28次奖励。以下两套方案根据个人情况选择。
攻略一:4200积分
需要1天赢两次输两次。(共28次)
200X2X7=2800
100X2X7=1400
算下来一星期多花700金,可以领200w贝利,1.5w装备晶石,10瓶体力中,500金币,20红装精华。很划算有木有!
攻略二:3600积分
一个星期只需要赢8场比赛,平均一天赢一场(共28次)
18&200=1600
20+100=2000
攻略二比攻略一难度低很多,只少20红装精华。
两套攻略一星期下来最后都只花了200金,但是多出10瓶体力和1.5w装备晶石、200w贝利,远超200金性价比。
(大家可以组好友打,积分奖励有16%加成,上面方案没算进去,累计积分还是很乐观的)。[转]使用java操作dbf文件的方法---JDBF
完全free的JDBF: http://www.svcon.com/
这个网站主要是做数据库连接中间介的,其中用到了一个他们自己开发的叫做JDBF的项目,该项目就是专门控制dbf文件的,整个包只有30K大小,你们随便用个工具反编译一下就可以看懂里面的代码,很简单,就是按照具体格式处理文件!(注意,不是使用JDBC连接的。)
JDBF不能读取中文问题的解决方法:
JDBF对于数据的读取采用了UNICODE字符集,所以读取数据的时候不存在问题。关键在于对字段的读取不兼容中文。
打开JDBF的源码就知道,它是把.dbf作为文件流的形式读进来的,但是我不明白它为什么读取字段和读取数据要分两种方式。读取字段的时候它是这样的:从文件流中一个一个byte(字节)地读取信息,却画蛇添足地把每个字节强行转化为字符(char)型,然后再把这一传char拼接成一个String字段。
这样就有问题了,在JAVA中一个char的大小是一个byte的两倍,这样的话,就相当于每个char的高位填入了一个为0000的空byte,对于使用高位的中文字符集来说,它就相当于每次读取了半个中文字符,然后就把这半个字符用补零的方法转换成整个中文字符,这就是JDBF不能读取中文字段名的原因。(所幸的是它在读取数据的时候却没有采用逐个byte读取的方式,所以不会出现问题。)
还有一点幸运的是,它读进来的字段虽然是错的,但是字段里面所含的信息没有丢失,我们只要把它人为填加的0000空byte去掉就可以转回真正的中文。
知道了原因,就很好解决了,下面是别人写的一个转换函数,你在通过String
columnName=DBFReader.getField(i).getName()得到每一个字段的时候使用这个函数转换,就可以转回正确的汉字。
//遍历字串的每一个char,转换成byte后组合成byte[],再转换成String返回
//****可以解决因逐个读入char(而不是byte)而组成的字串不能通过encoding还原成中文的问题****
public static String getStrByCharToByte(String str){
byte[] temp=new byte[str.length()];
for(int i=0;i
temp[i]=(byte)(str.charAt(i));
return new String(temp);
public class DBFReader {
public DBFReader(String s) throws JDBFException {
nextRecord =
init(new FileInputStream(s));
catch (FileNotFoundException filenotfoundexception) {
throw new JDBFException(filenotfoundexception);
public DBFReader(InputStream inputstream) throws JDBFException
nextRecord =
init(inputstream);
private void init(InputStream inputstream) throws JDBFException
stream = new DataInputStream(inputstream);
int i = readHeader();
fields = new JDBField[i];
int j = 1;
for (int k = 0; k & k++) {
fields[k] = readFieldHeader();
j += fields[k].getLength();
if (stream.read() & 1)
throw new JDBFException("Unexpected end of file reached.");
nextRecord = new byte[j];
stream.readFully(nextRecord);
} catch (EOFException eofexception) {
nextRecord =
stream.close();
} catch (IOException ioexception) {
throw new JDBFException(ioexception);
private int readHeader() throws IOException, JDBFException {
byte abyte0[] = new byte[16];
stream.readFully(abyte0);
catch (EOFException eofexception) {
throw new JDBFException("Unexpected end of file reached.");
int i = abyte0[8];
if (i & 0)
i += 256 * abyte0[9];
i = --i / 32;
stream.readFully(abyte0);
catch (EOFException eofexception1) {
throw new JDBFException("Unexpected end of file reached.");
private JDBField readFieldHeader() throws IOException,
JDBFException {
byte abyte0[] = new byte[16];
stream.readFully(abyte0);
catch (EOFException eofexception) {
throw new JDBFException("Unexpected end of file reached.");
StringBuffer stringbuffer = new StringBuffer(10);
for (int i = 0; i & 10; i++) {
if (abyte0[i] == 0)
stringbuffer.append( (char) abyte0[i]);
char c = (char) abyte0[11];
stream.readFully(abyte0);
catch (EOFException eofexception1) {
throw new JDBFException("Unexpected end of file reached.");
int j = abyte0[0];
int k = abyte0[1];
if (j & 0)
if (k & 0)
return new JDBField(stringbuffer.toString(), c, j, k);
public int getFieldCount() {
return fields.
public JDBField getField(int i) {
return fields[i];
public boolean hasNextRecord() {
return nextRecord !=
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. 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();
stream.readFully(nextRecord);
catch (EOFException eofexception) {
nextRecord =
catch (IOException ioexception) {
throw new JDBFException(ioexception);
public void close() throws JDBFException {
nextRecord =
stream.close();
catch (IOException ioexception) {
throw new JDBFException(ioexception);
private DataInputS
private JDBField fields[];
private byte nextRecord[];
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。}

我要回帖

更多关于 举报传销有奖励吗 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信