Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[16214] Re:온도센서값을 실시간 시간 출력되게 CSV파일로 받고싶은데 방법을 모르겠습니다.
김시환 [godson2] 1055 읽음    2023-02-22 23:37
소스 코드를 보니 main 함수 설계를 좀 잘못하신것 같습니다. 프로그램 시작부터 파일을 fopen 으로 열어 놓은 상태에서 모든 작업을 수행하는 것은 좋은 코드가 아닙니다. 파일은 사용할 때만 열고 바로 닫아 주어야 합니다. 그렇지 않으면 나중에 파일이 깨질 수도 있습니다.

일단 파일로 저장할 값들을 별도의 변수로 만들어 저장하고 센서에서 온도를 읽어온 후 변수에 저장되면   파일 저장하는 함수부분 화면 출력 부분의 함수를 별도로 만들어 파라메터로 넘겨주던가 아니면 전역변수를 사용해서 처리하면  되겠습니다.

읽어올 온도가 여러개라면 배열을 온도 갯수만큼 만들어 놓고 저장하고 배열을 파라메타로 넘겨줘도 됩니다.

csv 파일은 콤마를 데이타 사이사이에 넣어주면 되며 엑셀로 파일을 열면 각 셀로 구분이 됩니다.  
fprintf(fp, "%s,%4.1f\n", asctime(d), temperature );    <-- 참고


void Display_Data( double temperature)
{
    printf("%s,%4.1f\n", asctime(d), temperature );
}
//-------------------------------------------------------------------------
void Save_Data(double temperature)
{
    FILE* fp = fopen("temperature.txt", "w");
    try
    {
        fprintf(fp, "%s,%4.1f\n", asctime(d), temperature );   // 저장할때 콤마로 구분하면 csv 형식이 됩니다.
    }
    __finally
    {
        fclose(fp) ;
    }
}
//-------------------------------------------------------------------------
int main()
{
    double temp ;   

    while(1)
    {
        temp = read_temperature() ;   // 온도 읽어오는 함수도 별도로 만드세요..
        Display_Data(temp) ;             // 화면 출력 함수
        Save_Data(temp) ;                  // 데이타 저장 함수

        Sleep(200) ;
    }
}


한수알려주세요 님이 쓰신 글 :
: 안녕하세요 온도센서값을 실시간 시간 출력되면서 CSV파일로 값을 받고 싶은데
: 어떻게 해야할지 감이 안잡혀서 여쭤봅니다
: 감사합니다

+ -

관련 글 리스트
16212 840 2023/02/21
16214     Re:온도센서값을 실시간 시간 출력되게 CSV파일로 받고싶은데 방법을 모르겠습니다. 김시환 1055 2023/02/22
16213     Re:온도센서값을 실시간 시간 출력되게 CSV파일로 받고싶은데 방법을 모르겠습니다. 923 2023/02/22
(링크)     C++Builder Q/A > Re:온도센서값을 실시간 시간 출력되게 CSV파일로 받고싶은데 방법을 모르겠습니다.
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.