|
C++ 빌더 6.0 쓰구요.
구현하고자 하는것은 이렇습니다.
텍스트창이 있는데, 버튼을 누르면 그내용들이 엑셀파일로 저장이되는거에요.
근데 저는 베이스를 문자입출력 으로 잡았는데, 이렇게 하는게 맞는거다, 아니다 라고는 말할수없지만
이런방식을 택했습니다. 어떻게든 구현이되긴되는데, 한가지 걸림돌이 생겼어요..
소스는 이렇습니다.
#include <vcl.h>
#include <stdio.h>
#include <string.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "Excel_2K_SRVR"
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
count=1;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Edit1->Text="";
Edit2->Text="";
Edit3->Text="";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
count=count+1;
x=0;
y=0;
// Good1=(TEdit *) FindComponent(Good);
for(int i=1;i<30;i++)
{
if(count==i)
{
a[i]=Edit1->Text;
b[i]=Edit2->Text;
c[i]=Edit3->Text;
}
}
for(int i=2;i<=count;i++)
{
if(a[i]==Good) x=x+1;
if(b[i]==Good) x=x+1;
if(c[i]==Good) x=x+1;
if(a[i]==Nogood) y=y+1;
if(b[i]==Nogood) y=y+1;
if(c[i]==Nogood) y=y+1;
}
a[0]="Good";
b[0]=x;
c[0]="Nogood";
a[1]=y;
b[1]=",";
c[1]=",";
stream=fopen("hoho.xls","w");
for(int i=0;i<=count;i++)
{
fprintf(stream,"%s\n%s\n%s\n",a[i],b[i],c[i]);
}
fclose(stream);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
Good=Edit4->Text;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button5Click(TObject *Sender)
{
Nogood=Edit5->Text;
}
//---------------------------------------------------------------------------
예를들어
Edit1->Text1 에 a
Edit2->Text2 에 b
Edit3->Text3 에 c 라고 입력하고 저장을 하게되면
텍스트모드로 a
b
c 이렇게 저장이 되기때문에 엑셀파일로 열어보면
A1 : a , A2 : b , A3 : c 가 저장이됩니다.
여기서 B1에 저장하고싶다면,
Edit1->Text1 에 (,) 나 공백 혹은 탭키를 넣은뒤 a 를 입력하면
위에 입력키들이 행을 나누어주게되어 b1,b2,b3에 저장이 되게됩니다.
이런방식으로 입력하는 것들은 어렵지가않은데,
문제는 비교하는거... 제가 입력한값들을 비교해서 입력한값이 10이상이 몇개다 10이하가 몇개다
이렇게 표시해주고싶은데,
만약 good에다가 1을 저장하였을시,
a[0]=Edit1->Text 라면, 입력한 값이 1이면 good이랑 a[0]은 같기때문에
if문을 써서 카운트를 올려서 표시를 할수있거든요?
그런데.. A1,B1,C1 이렇게 전부다 입력을 하려면
결국은 a[0] 에는 1만 들어가는게 아니라, 1,1,1,1 뭐이런식으로도 들어갈수있다는거에요..
그랬을경우 good은 1이니까.. a[0]과 같다고 인식을 안하게되자나요.. 카운트를 할수없다는거죠..
제가 알고자하는것은.. good이란 변수에 1을 넣었을때,
a[0]에 {1,1,1,1} 이나 혹은 {1 1 1 1a213 11} 이렇게 들어간다고 쳤을때 !!
1을 캐치해서 1이 몇개인지, 카운트를 할수 있냐는거에요...
엑셀로따지면 1 good=1 , a[0]= 1 , b[0]=1 , c[0]=1
1
1 이렇게만 입력하면 1이 3개다 라고 띄울수있는데,
text창에 1,1,1,1 이렇게치면 , ( a[0]=Edit1->Text 일경우 ) goo1 , a[0]= 1 , 1 , 1 , 1
엑셀로 a1 b1 c1 d1
1 1 1 1 이렇게 뜰텐데, 1이 4개다!! 라고 띄울수가 없어서 방법을 알고싶습니다 ㅠ.ㅠ
FindComponent도 써보고 다해봤는데.. 제가쓸줄을 몰라서그러는건지.. 구현할수없는건지..
답답하네요.. 부탁드립니다 ㅠㅠ
|