일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- MODBUS
- 시리얼통신
- pressure
- 폴링
- RS232
- rs-485
- c# build date
- hivac
- Polling
- Gas box
- 드라이에쳐
- MelsecNet-G
- 자동제어
- melsec
- Dry etcher
- HI-Vacuum
- REGULATOR
- 레귤레이터
- rs-232
- 가스
- DATAGRIDVIEW
- VACUUM
- pc제어
- PMAC
- gauge
- cluster
- ION Gauge
- 설비제어
- Helium
- CDG
Archives
- Today
- Total
진공에 대해 알려주마.
TOOLS (Type casting and ...) 본문
누군가 말했지. 프로그램 개발보다 형변환 하다가 개발 시간을 다보낸다고...
그래서 여기 모아보았다.
프로그램 개발시 필요한 형변환을 중심으로 각종 필요한 항목을 업데이트 할 예정이다.
물론 모두 테스트 완료 되었거나 실제 사용하는 Code들 이다.
C++ CString to Char* (출처 https://sggilsroom.tistory.com/126 )
char Buffer[255] = "";
CString szString;
size_t CharactersConverted = 0;
wcstombs_s(&CharactersConverted, Buffer, szString.GetLength()+1, szString, _TRUNCATE);
문자열을 구분자로 분리 함수와 호출 예제 (출처 ?)
// 스트링을 구분자로 분리
vector<string> splitString( string input, char dlim )
{
vector<string> result;
stringstream ss;
string stringBuffer;
ss.str(input);
while (getline(ss, stringBuffer, dlim))
{
result.push_back(stringBuffer);
}
return result;
}
int ReadFileAndConvertFloat()
{
FILE *fp;
char buffer[512];
char* filename = "D:\\Log\\Data.txt";
if ((fp = fopen(filename, "r")) == NULL) return -1;
while (fgets(buffer, 512, fp) != NULL)
{
// 함수 호출 (한줄을 읽어서 쉼표로 구분하여 숫자로 변환)
vector<string> result = splitString( buffer, ',' );
string str1 = result[0];
string str2 = result[1];
string str3 = result[2];
float f0 = std::stof(str1);
float f1 = std::stof(str2);
float f2 = std::stof(str3);
// .........................
}
return 0;
}
TEXT FILE READ
int ReadWriteTextFile()
{
FILE *fp;
char buffer[512];
char* filename = "D:\\Log\\Data.txt";
if ((fp = fopen(filename, "r")) == NULL) return -1;
while (fgets(buffer, 512, fp) != NULL)
{
// 함수 호출 (한줄을 읽어서 쉼표로 구분하여 숫자로 변환)
vector<string> result = splitString( buffer, ',' );
string str1 = result[0];
string str2 = result[1];
string str3 = result[2];
float f0 = std::stof(str1);
float f1 = std::stof(str2);
float f2 = std::stof(str3);
}
return 0;
}
TEXT FILE WRITE
void DataSave()
{
FILE *fp;
char buffer[512];
char* filename = "D:\\LOG\\DataPosXO.txt";
string strLine = "TEXT FILE";
if( ( fp = fopen( filename, "w" ) ) == NULL ) return;
strcpy( buffer, strLine.c_str() );
fputs( buffer, fp );
fclose( fp );
}
C++ 파일 READ/WRITE
// ConsoleApplication2.cpp : 이 파일에는 'main' 함수가 포함됩니다. 거기서 프로그램 실행이 시작되고 종료됩니다.
//
#include <atlstr.h>
#include <iostream>
#include <fstream>
#include <string>
int main()
{
std::string Path = "D:\\TextFile2.txt";
// File write
std::ofstream writeFile(Path);
if (writeFile.is_open())
{
writeFile << "example code\n";
writeFile << "text in/out\n";
writeFile << "write/ read file\n";
writeFile.close();
}
// File read by Char*
std::ifstream readFile(Path);
if (readFile.is_open())
{
char line[512];
while (!readFile.eof())
{
readFile.getline(line, sizeof(line));
std::cout << line << std::endl;
}
//
readFile.close();
}
// string형으로 바로 읽기
std::ifstream strfile(Path);
if (strfile.is_open())
{
std::string line;
const char* szline;
int nNo = 0;
double dNo = 0.0;
while ( getline (strfile, line)) // #include <string>
{
std::cout << line << std::endl;
szline = line.c_str();
nNo = atoi(line.c_str());
dNo = atof(line.c_str());
}
strfile.close();
}
}
'진공 > 노하우' 카테고리의 다른 글
MODBUS 2 (0) | 2023.10.14 |
---|---|
리부트 (0) | 2023.09.23 |
"A\0B\0C\0\0\0\0\0\0\0\0\0" (0) | 2023.04.08 |
VIEW MON of RS-485 (0) | 2022.11.20 |
시리얼 통신 (4) | 2022.09.17 |
Comments