📄 ksg_file.cpp
字号:
w = r = c_pnt = 0;
for (i=0; ;i++) {
a_buf[w] = buf[r];
if (a_buf[w] == ',' || a_buf[w] == '\r') a_buf[w] = NULL;
if (a_buf[w] == NULL) {
switch (c_pnt) {
case 0:
sscanf(a_buf, "%s", &header);
if (strcmp(header, CSV_header) != 0) {
buf[r+1] = '\n';
err = -4; // 僼傽僀儖僼僅乕儅僢僩僄儔乕
keep = 0;
break;
}
break;
case 1:
sscanf(a_buf, "%s", &ddat->Pnt);
break;
case 2:
sscanf(a_buf, "%4d/%2d/%2d %2d:%2d:%2d",
&ddat->R_dt.yer, &ddat->R_dt.mon, &ddat->R_dt.day,
&ddat->R_dt.hor, &ddat->R_dt.min, &ddat->R_dt.sec);
break;
case 3:
sscanf(a_buf, "%f", &tmp);
ddat->MaxAcc = tmp;
break;
case 4:
sscanf(a_buf, "%f", &tmp);
ddat->SinLev = tmp;
break;
}
c_pnt ++;
w = -1;
}
if (buf[r] == '\n') break;
w ++;
r ++;
}
phs = 20;
n = 0;
break;
case 20:
w = r = xyz = 0;
for (i=0; ;i++) {
a_buf[w] = buf[r];
if (a_buf[w] == ',' || a_buf[w] == '\r') a_buf[w] = NULL;
if (a_buf[w] == NULL && w != 0) {
sscanf(a_buf, "%f", &wdat->Wave[n+ofs][xyz]);
xyz ++;
if (xyz == 3) xyz = 0;
w = -1;
}
if (buf[r] == '\n') break;
w ++;
r ++;
}
n ++;
break;
}
exe &= d01_off;
w_pnt = 0;
}
if (n >= MAX_WAVE_CNT) {
keep = 0;
break;
}
if ((r_cnt == r_pnt && r_cnt != 512) || r_cnt == 0) {
// 僨乕僞悢懌傝側偄
for (i=n-1; i<MAX_WAVE_CNT; i++) {
wdat->Wave[i+ofs][0] = 0.0;
wdat->Wave[i+ofs][1] = 0.0;
wdat->Wave[i+ofs][2] = 0.0;
}
keep = 0;
err = -5;
break;
}
}
pFile.Close(hdl);
}
}
return err;
}
/*-------------------------------------
m:25-Dec-1998
@p << 抧恾昞帵梡僨乕僞撉傒崬傒 >>
堷悢 n 摨堦抧恔僨乕僞搊榐No.
栠抣 側偟
// 27:HY
-------------------------------------*/
void MAP_data_read(int n)
{
struct S_DtbData dtb;
int ch, err;
char fname[MAX_PATH], buf[512];
err = get_dtb_name(n, fname); // 摨堦抧恔僨乕僞僼傽僀儖柤庢摼
if (!err){
for (ch=0;ch<MAX_CH;ch++){
err = DtbDataAccess(0, fname, 1, ch, (char*)&dtb);
if (err){
break;
}
Map_DbData[ch] = dtb;
}
}
else{ // 摨堦抧恔僨乕僞僼傽僀儖柤庢摼僄儔乕
err = 2;
if (Dtb_ent_cnt == 0){
err = 1;
}
}
if (err){
switch (err){
case 1: // 僨乕僞僼傽僀儖側偟
if (pOpenDlg != NULL) {
war_disp(War_msg[0]); // 儚乕僯儞僌儊僢僙乕僕
}
return;
case 2: // 摨堦抧恔僨乕僞僼傽僀儖柤庢摼僄儔乕
sprintf(buf, "%s", Err_msg[4]);
break;
case -1: // 摨堦抧恔僨乕僞僼傽僀儖専嶕僄儔乕
sprintf(buf, "%s\r\n\r\n[%s]", Err_msg[1], fname);
break;
case -2: // 摨堦抧恔僨乕僞僼傽僀儖撉傒崬傒僄儔乕
sprintf(buf, "%s\r\n\r\n[%s]", Err_msg[2], fname);
break;
}
if (err != 1) {
if (pOpenDlg != NULL) {
err_disp(buf); // 僄儔乕儊僢僙乕僕
}
}
// 僨乕僞僋儕傾
memfill((char *) Map_DbData, sizeof(S_DtbData)*MAX_PNT_ALL, NULL);
for (ch=0;ch<MAX_CH;ch++){
#if ATSUGI
Map_DbData[ch].SinKai = 10; // 昞帵柍偟(--)
#else
Map_DbData[ch].SinKai = 13; // 昞帵柍偟(--)
#endif
}
}
}
/*-------------------------------------
m:24-Dec-1998
@p << 俠俽倁僼傽僀儖曐懚 >>
堷悢 wdat 攇宍僨乕僞僶僢僼傽
ddat 僨乕僞僶僢僼傽
栠抣 IDOK(1) 惉岟
IDCANCEL(2)
else 僄儔乕
--------------------------------------*/
int CSV_file_save(struct S_WaveData *wdat, struct S_Dsp_Data *ddat)
{
CC_File pFile;
char fname[MAX_PATH], buf[512];
int ret, err, atr;
err = 0;
sprintf(buf, "%s%s_%04d_%02d_%02d_%02d_%02d_%02d.CSV", Data_dir[DIR_CSV], Sel_Data.Pnt,
Sel_Data.R_dt.yer, Sel_Data.R_dt.mon, Sel_Data.R_dt.day,
Sel_Data.R_dt.hor, Sel_Data.R_dt.min, Sel_Data.R_dt.sec);
ret = CommonDlgFileOpen(buf, fname, FALSE);
if (ret == IDOK) {
if (pFile.C_FileFind(fname) == 1) { // 僼傽僀儖専弌
ret = sel_disp(Sel_msg[3], 0);
if (ret == IDOK) {
atr = pFile.C_GetAttribute(fname);
if (atr & FILE_ATTRIBUTE_SYSTEM) {
err = -6; // 僔僗僥儉僼傽僀儖傪忋彂偒
}
else if (atr & FILE_ATTRIBUTE_READONLY) {
ret = sel_disp(Sel_msg[6], 0);
if (ret == IDOK) {
pFile.C_SetAttribute(fname, atr&(~FILE_ATTRIBUTE_READONLY));
}
}
if (ret == IDOK && !err) {
err = pFile.C_FileDelete(fname); // 僼傽僀儖嶍彍
if (err != 0) {
err = -5; // 僼傽僀儖嶍彍僄儔乕
}
}
}
if (ret == IDCANCEL) {
war_disp(War_msg[1]);
}
}
if (ret == IDOK && !err) {
// 09-Apr-2004
int sel_ch;
for (sel_ch=0;sel_ch<MAX_CH;sel_ch++){
err = put_csv_data(sel_ch, fname, wdat, ddat);
}
}
if (err != 0) {
switch (err) {
case -1: // 僼傽僀儖嶌惉僄儔乕
sprintf(buf, "%s\r\n\r\n[%s]", Err_msg[21], fname);
break;
case -2: // 僼傽僀儖僆乕僾儞僄儔乕
sprintf(buf, "%s\r\n\r\n[%s]", Err_msg[22], fname);
break;
case -3: // 僼傽僀儖彂崬傒僄儔乕
sprintf(buf, "%s\r\n\r\n[%s]", Err_msg[23], fname);
break;
case -4: // 僼傽僀儖彂崬傒僄儔乕(僨傿僗僋僗儁乕僗側偟)
sprintf(buf, "%s\r\n\r\n[%s]\r\n\r\n%s", Err_msg[23], fname, Info_msg[4]);
break;
case -5: // 僼傽僀儖嶍彍僄儔乕
sprintf(buf, "%s\r\n\r\n%s\r\n\r\n[%s]", Err_msg[26], Info_msg[2], fname);
break;
case -6: // 忋彂偒懳徾偑僔僗僥儉僼傽僀儖
sprintf(buf, "%s\r\n\r\n%s\r\n\r\n[%s]", Err_msg[26], Info_msg[3], fname);
break;
}
err_disp(buf); // 僄儔乕儊僢僙乕僕昞帵
ret = err;
}
}
else {
if (!Map_Active) {
war_disp(War_msg[1]);
}
}
return ret;
}
/*-------------------------------------
m:24-Dec-1998
@p << 俠俽倁僼傽僀儖撉傒崬傒 >>
堷悢 wdat 攇宍僨乕僞僶僢僼傽
ddat 僨乕僞僶僢僼傽
栠抣 IDOK(1) 惉岟
IDCANCEL(2)
else 僄儔乕
-------------------------------------*/
int CSV_file_read(struct S_WaveData *wdat, struct S_Dsp_Data *ddat)
{
CC_File pFile;
char fname[MAX_PATH], buf[512];
int ret, err;
err = 0;
ret = CommonDlgFileOpen(Data_dir[DIR_CSV], fname, TRUE);
if (ret == IDOK) {
if (pFile.C_FileFind(fname) == 0) { // 僼傽僀儖枹専弌
err = -1; // 僼傽僀儖専嶕僄儔乕
}
if (!err) {
int sel_ch;
for (sel_ch=0;sel_ch<MAX_CH;sel_ch++){
err = get_csv_data(sel_ch, fname, wdat, ddat);
}
}
if (err != 0) { // 僄儔乕敪惗?
switch (err) {
case -1: // 僼傽僀儖専嶕僄儔乕
sprintf(buf, "%s\r\n\r\n[%s]", Err_msg[20], fname);
break;
case -2: // 僼傽僀儖僆乕僾儞僄儔乕
sprintf(buf, "%s\r\n\r\n[%s]", Err_msg[22], fname);
break;
case -3: // 僼傽僀儖撉傒崬傒僄儔乕
sprintf(buf, "%s\r\n\r\n[%s]", Err_msg[24], fname);
break;
case -4: // 僼傽僀儖僼僅乕儅僢僩僄儔乕
sprintf(buf, "%s\r\n\r\n[%s]", Err_msg[25], fname);
break;
}
err_disp(buf); // 僄儔乕儊僢僙乕僕昞帵
ret = err;
}
}
return ret;
}
/*-------------------------------------
m:29-Dec-1998
@p << 弶婜壔僼傽僀儖撉傒崬傒僨乕僞夝愅(僇儔乕愝掕) >>
堷悢 buf 撉傒崬傒僶僢僼傽
栠抣 0 惉岟
-1 僄儔乕
-------------------------------------*/
int INI_file_anal_10(char *buf)
{
// Color1(恔搙侾)=0,0,255
char chk[6];
int i, ret, num, ep, cp[2], r, g, b;
ret = -1;
for (i=0; i<5; i++) {
chk[i] = buf[i];
}
chk[i] = NULL;
if (strcmp(chk, "Color") == 0) {
sscanf(&buf[5], "%d", &num);
cp[0] = -1;
for (i=0; ;i++) {
if (buf[i] == NULL) break;
if (buf[i] == '=') ep = i;
if (buf[i] == ',') {
if (cp[0] == -1) cp[0] = i;
else cp[1] = i;
}
}
sscanf(&buf[ep+1], "%d", &r);
sscanf(&buf[cp[0]+1], "%d", &g);
sscanf(&buf[cp[1]+1], "%d", &b);
if (1 <= num && num <= 9) { // 恔搙奒
if (0 <= r && r <= 255) {
if (0 <= g && g <= 255) {
if (0 <= b && b <= 255) {
Mag_clr_tbl[num] = RGB(r, g, b);
ret = 0;
}
}
}
}
if (num == 0) { // 僶僢僋僇儔乕
if (0 <= r && r <= 255) {
if (0 <= g && g <= 255) {
if (0 <= b && b <= 255) {
Bak_Color = RGB(r, g, b);
ret = 0;
}
}
}
}
}
return ret;
}
/*-------------------------------------
m:29-Dec-1998
@p << 弶婜壔僼傽僀儖撉傒崬傒僨乕僞夝愅(儂僗僩愝掕) >>
堷悢 buf 撉傒崬傒僶僢僼傽
栠抣 0 惉岟
-1 僄儔乕
-------------------------------------*/
int INI_file_anal_20(char *buf)
{
char chk[8];
int i, ret, num;
ret = 0;
for (i=0; i<7; i++) {
chk[i] = buf[i];
}
chk[i] = NULL;
if (strcmp(chk, "Address") == 0) {
for (i=0; ;i++) {
TCP_Host_IP[i] = buf[i+8];
if (TCP_Host_IP[i] == NULL) break;
if (TCP_Host_IP[i] == '\r') break;
if (TCP_Host_IP[i] == '\n') break;
}
}
else if (strcmp(chk, "Port_No") == 0) {
sscanf(&buf[8], "%d", &num);
TCP_Port_No = num;
}
// 2001-11-27(MK@CQ)
else if (strcmp(chk, "Addres2") == 0) {
for (i=0; ;i++) {
TCP_Host_IP2[i] = buf[i+8];
if (TCP_Host_IP2[i] == NULL) break;
if (TCP_Host_IP2[i] == '\r') break;
if (TCP_Host_IP2[i] == '\n') break;
}
}
else if (strcmp(chk, "Port_N2") == 0) {
sscanf(&buf[8], "%d", &num);
TCP_Port_No2 = num;
}
return ret;
}
/*-------------------------------------
m:26-Jan-1999
@p << 弶婜壔僼傽僀儖撉傒崬傒僨乕僞夝愅(僷僗儚乕僪愝掕) >>
堷悢 buf 撉傒崬傒僶僢僼傽
栠抣 0 惉岟
-1 僄儔乕
-------------------------------------*/
int INI_file_anal_30(char *buf)
{
char chk[10];
int i, ret, num;
ret = 0;
for (i=0; i<8; i++) {
chk[i] = buf[i];
}
chk[i] = NULL;
num = -1;
if (strcmp(chk, "PassWord") == 0) {
for (i=0; ;i++) {
Pass_word[i] = buf[i+9];
if (Pass_word[i] == NULL) break;
if (Pass_word[i] == '\r') break;
if (Pass_word[i] == '\n') break;
}
}
return 0;
}
/*-------------------------------------
m:29-Dec-1998
@p << 弶婜壔僼傽僀儖撉傒崬傒 >>
堷悢 側偟
栠抣 0 惉岟
-1 僄儔乕
-------------------------------------*/
int INI_file_read()
{
CC_File pFile;
char buf[128];
int i, hdl, err, keep, phs, rc;
char *chk_buf[4] = {
"[僇儔乕愝掕(R,G,B)]",
"[儂僗僩愝掕]",
"[僷僗儚乕僪愝掕]"
};
Mag_clr_tbl[0] = RGB( 0, 0, 0); // [00]:0
Mag_clr_tbl[1] = RGB( 0, 0,255); // [01]:1
Mag_clr_tbl[2] = RGB( 0,128,255); // [02]:2
Mag_clr_tbl[3] = RGB( 0,255,255); // [03]:3
Mag_clr_tbl[4] = RGB( 0,255, 0); // [04]:4
Mag_clr_tbl[5] = RGB(255,255, 0); // [05]:5庛
Mag_clr_tbl[6] = RGB(255, 64, 64); // [06]:5嫮
Mag_clr_tbl[7] = RGB(255, 0, 0); // [07]:6庛
Mag_clr_tbl[8] = RGB(255,128,128); // [08]:6嫮
Mag_clr_tbl[9] = RGB(255, 0,255); // [09]:7
Mag_clr_tbl[10] = RGB(255, 0,255); // [09]:7
Mag_clr_tbl[11] = RGB(255, 0,255); // [09]:7
Mag_clr_tbl[12] = RGB(255, 0,255); // [09]:7
Mag_clr_tbl[13] = RGB(255, 0,255); // [09]:7
err = 0;
keep = 1;
hdl = pFile.FOpen(Data_dir[FLE_INI], "r");
if (hdl != -1) {
while (keep) {
rc = pFile.FRead(hdl, "%s", buf);
if (rc == EOF) {
keep = 0;
}
else {
if (buf[0] != ':') {
if (buf[0] == '[') {
for (i=0; i<3; i++) {
if (!strcmp(buf, chk_buf[i])) {
phs = 10 * (i + 1);
break;
}
}
}
switch (phs) {
case 10: // 僇儔乕愝掕
INI_file_anal_10(buf);
break;
case 20: // 儂僗僩愝掕
INI_file_anal_20(buf);
break;
case 30: // 僷僗儚乕僪愝掕
INI_file_anal_30(buf);
break;
}
}
}
}
pFile.FClose(hdl);
}
// ver 1.11
ConnectNo[0] = GetPrivateProfileInt("婥徾挕", "Modem1", 0, Data_dir[FLE_INI]);
ConnectNo[1] = GetPrivateProfileInt("婥徾挕", "Modem2", 1, Data_dir[FLE_INI]);
ConnectNo[2] = GetPrivateProfileInt("婥徾挕", "Modem3", 2, Data_dir[FLE_INI]);
ConnectNo[3] = GetPrivateProfileInt("婥徾挕", "Modem4", 3, Data_dir[FLE_INI]);
ConnectNo[4] = GetPrivateProfileInt("婥徾挕", "Modem5", 4, Data_dir[FLE_INI]);
ConnectNo[5] = GetPrivateProfileInt("婥徾挕", "Modem6", 5, Data_dir[FLE_INI]);
ConnectNo[6] = GetPrivateProfileInt("婥徾挕", "Modem7", 6, Data_dir[FLE_INI]);
ConnectNo[7] = GetPrivateProfileInt("婥徾挕", "Modem8", 7, Data_dir[FLE_INI]);
// ver 1.30
BrinkKai = GetPrivateProfileInt("僽儕儞僋", "Blink", 20, Data_dir[FLE_INI]);
return err;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -