|
: 안녕하세요..지니입니다.
: 실험을 하면서 받는 데이타라면 외부장치로 부터 입력받는 데이타인 모양이죠?
: 프로그램의 특정화일로 저장할 수 있으면 DB화일로도 저장할 수 있죠.
:
: 이미 데이타 화일이 있는 상태에서 DB화일로 저장하고 싶으신지,
: 아니면 데이타 화일로 저장함과 동시에 DB화일로도 저장하고 싶으신지
: 잘 모르겠지만, 두가지 다 가능합니다.
:
: 우선 데이타 화일이 존재할 경우는 일정한 포맷으로 저장했을거라 생각됩니다.
: 그 포맷은 소영님이 더 잘 아시겠죠.
:
: 그럼 화일을 오픈시켜서 화일의 처음부터 마지막까지 루프를 돌면서 한줄 한줄 DB화일에
: 저장하면 됩니다.
:
: 예를들어..데이타포맷이 Name(char),Inputdate(date),Value(int)로 되어있고,
: 그리고 DB의 필드도 같은 이름으로 되어있다고 가정할때..
:
: char buf[128];
: 화일오픈.
: while(화일의 마지막이 아닐때까지)
: {
: buf = 한줄을 읽어온다.
: buf를 포맷에 따라 잘라서 변수에 저장한다.(Name,Inputdate,Value)로 저장한다.
:
: //테이블 컴포넌트를 쓸경우..
: Table1->Append();
: Table1->FieldByName("Name")->AsString = Name;
: Table1->FieldByName("Inputdate")->AsDate = Inputdate;
: Table1->FieldByName("Value")->AsInteger = Value;
: Table1->Post();
:
: //또는 쿼리컴포넌트를 써서 (Insert Into쿼리문을 작성해도 됩니다.);
: }
: 화일클로즈.
:
: 그리고 데이타를 외부장치로 부터 입력받아서 화일로 저장한다면, 화일로 저장할때
: 일정한 형식으로 저장하겠죠. 그럼 거기서 원하시는 형태로 데이타를 잘라서 DB에 저장하면
: 됩니다.
:
: 예를들면..
: char buf[128];
:
: buf = 외부장치로 부터 데이타를 입력받는다.
: 위에서 처럼 buf를(Name,Inputdate,Value로) 분리합니다.
:
: 화일저장
: //저장코드 입력
:
: DB저장
: //테이블 컴포넌트를 쓸경우..
: Table1->Append();
: Table1->FieldByName("Name")->AsString = Name;
: Table1->FieldByName("Inputdate")->AsDate = Inputdate;
: Table1->FieldByName("Value")->AsInteger = Value;
: Table1->Post();
:
: //또는 쿼리컴포넌트를 써서 (Insert Into쿼리문을 작성해도 됩니다.);
:
: 그럼..잘 되길 빌며...
--------------------------------------------------------------------------------------------
안녕하세요, 지니님!
친절하고 자세한 답변에도 불구하고 또 질문을 하게 되는군요(^^;;)
아래와 같이 화일열긴 열었는데요
FILE *fs;
int ks;
float time,set_temp,reac_temp,ja_temp,set_torque,rpm,torque;
fs=fopen("data.dat","wt");
do
{
ks=fscanf(fs,"%f %f %f %f %f %f %f %f\n",&time,&set_temp,
&reac_temp,&ja_temp,&set_torque,&set_rpm,&rpm,&torque);
}
while(ks!=NULL);
fclose(fs);
답변 중 buf에 관련된 부분을 어떻게 하는 걸질 모르겠네요(제가 한 초보하거든요..)
buf = 한줄을 읽어온다.
buf를 포맷에 따라 잘라서 변수에 저장한다.(Name,Inputdate,Value)로 저장한다.
바쁘시겠지만 위의 코딩과 연결해서 좀 자세히 갈켜주세요....
다시 한번 부탁드립니다.
|