//dbf.hpp
#ifndef dbf_h
#define dbf_h
#include
typedef int bool;
#define maxfield 100
typedef struct column
column;
int createdbf(const char *fname, const column *item);
//dbf.cpp
#include
#include
#include
#include
#include
#include "dbf.hpp"
int createdbf(const char *fname, const column *item)
buf[0] = 0x0d;
fwrite(buf,1,1,out);
fseek(out,8,seek_set);
fwrite(&headlen,2,1,out);
fwrite(&reclen,2,1,out);
fclose(out);
return 1;
}cdbfile::cdbfile(const char *filename)
fread(&recnum,4,1,fp);
fread(&hsize,2,1,fp);
fieldnum=hsize/0x20-1;
hsize++;
fread(&recsize,2,1,fp);
hitem=new column[fieldnum];
tmpbuf=new char [11*fieldnum+2*fieldnum];
if(tmpbuf)
fp=null;
hitem=null;
}bool cdbfile::isopen(void)
int cdbfile::getfieldidx(const char *itemname)
int cdbfile::getfieldnum(void)
int cdbfile::getfieldlen(int fieldno)
int cdbfile::getfieldoff(int fieldno)
int cdbfile::getmaxfieldlen(void)
int cdbfile::getrecordsize(void)
if(!fp) return;
fseek(fp,0l,seek_end);
fwrite(recbuf,recsize,1,fp);
fseek(fp,4l,seek_set);
fread(&recnum,4,1,fp);
recnum++;
fseek(fp,4l,seek_set);
fwrite(&recnum,4,1,fp);
recnum++;
}bool cdbfile::setfielddata(long recno, const char *fname, const char *buff)
bool cdbfile::setfielddata(long recno, int fieldno, const char *buff)
fseek(fp,off,seek_set);
num=fieldlen[fieldno]-num;
memset(outbuf,0x20,num);
memcpy(outbuf,buff,strlen(buff));
fwrite(outbuf,num,1,fp);
return 1;
}void *cdbfile::getfielddata(long recno, const char *fname)
bool cdbfile::getfielddata(long recno, const char *fname, char *buff, int bufsize)
bool cdbfile::getfielddata(long recno, int fieldno, char *buff, int bufsize)
fseek(fp,off,seek_set);
num=fieldlen[fieldno]-num;
if(num>=bufsize)
fread(buff,num,1,fp);
if(toupper(hitem[fieldno].type)=='c')
buff[num] = 0;
return 1;
}long cdbfile::searchsortstr(int fieldno, const char *str, int igcase)
return -1;
}long cdbfile::searchstr(int fieldno, const char *str, long startno)
}delete buf;
return -1;
}long cdbfile::searchnextstr(int fieldno, const char *str)
DBF表用ADO訪問的一個問題
ors.cursorlocation aduseclient ors.open select from zcyzk.dbf oconn,adopenforwardonly,adlockreadonly 返回e fail錯誤 必須ors.open select bh,pm,kcs from zcyzk...
用C 讀取txt檔案的方法
1 使用filestream讀寫檔案 檔案頭 using system using system.collections.generic using system.text using system.io 讀檔案核心 byte bydata new byte 100 char chardata ne...
用C 讀取txt檔案的方法
1 使用filestream讀寫檔案 檔案頭 using system using system.collections.generic using system.text using system.io 讀檔案核心 byte bydata new byte 100 char chardata ne...
C 訪問應用程式配置檔案的方法
app.config中寫 注意c 中的應用程式配置檔名不能修改 複製 如下 在控制檯應用程式中訪問,如jnlhmapph下 首先新增system.con程式設計客棧figuration.dll引用 然後引入名稱空間 using system.confwww.cppcns.comiguration 複...
用SSH訪問內網主機的方法
如今的網際網路公司通常不會直接自己直接配主機搭建伺服器了,而是採用了類似阿里雲的這種雲主機,當應用變得越來越大了之後,就不可避免地增加主機,而出於成本考慮,不可能給每一臺主機都分配公網頻寬,所以實際的情況可能會變成這樣 內網ip為10.51.15.12和10.51.15.13的兩臺主機並沒有外網頻寬...