⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ksg_file.cpp

📁 对日本KSG震动探测仪器编写的伴侣服务代码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
						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 + -