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

C++빌더 Q&A
C++Builder Programming Q&A
[22839] Re:답변 감사합니다. 구현방법에 대해서 추가질문인데요.
도마뱀 [] 630 읽음    2002-11-25 15:47
답변 감사합니다. 아직까지 제가 모르는게 너무나도 많네요...
추가 질문인데요...
프로그램을 구현하는 방법에는 여러가기가 있겠지만,
여러 고수님들이 아시는 더 좋은방법이 있을꺼 같아서 질문드리는데요...
Visual C++ 이나 C++ 빌더의 코드에디터(명칭이 맞는지 잘 모르겠습니다)에서
키워드(if, else, switch등등)를 입력하게 되면 색깔이 바뀌거나,
글자체가 바뀌는데 이것은 어떻게 구현하는 겁니까....
제 생각에는 단순히 파일의 처음부터 끝까지....
키워드와 하나하나 반복해서 다 비교하는 것인데요....
이건 좀 너무 무식한 방법인것 같기도 하구 해서요...
고수님들이 좋은 방법을 아실꺼 같아서...질문드립니다.

조준회 님이 쓰신 글 :
: 빌더의 String은 2G까지의 문자열을 처리할수 있습니다.
: 궃이 리스트를 사용하지 않아도 왠만한 것은 충분히 처리 가능합니다.
:
: 다만 문제가 되는 것은 memo 컴포넌트는 64Kb까지밖에 처리할수 없습니다.
: (지금은 수정됐는지 모르겠군요.)
:
: 그래서 보통은 리치컴포넌트를 사용하고요..
: 리치를 쓰는 경우는 selstart,sellength, settestattr을 사용해서
:
: 각 문자별로 컬러를 지정할 수 있습니다.
:
: 도마뱀 님이 쓰신 글 :]
: : C 소스파일을 읽어서 메모컴포넌트에 나타내려고 하는데요....
: : 나타낼때 키워드인경우에는 글자의 색을 다르게 나타내려고 합니다.
: : 파일을 읽은후에 파일의 내용중...
: : 문자가 아닌부분마다 나누어서 링크드리스트로 나타내려고 하는데...
: : 컴파일시에는 에러가 없고, 실행시에 오류가 나는데...
: : 오류난 부분은 찾았는데 뭐가 잘못됐는지 잘 모르겠습니다.
: :
: : static int iFileHandle;
: : static int iFileLength;
: : static int iBytesRead;
: : char *pszBuffer;
: : struct ccon
: : {
: :         int kind;
: :         char *str;
: :         ccon *next;
: : }*start, *p;
: :
: :
: : void __fastcall TForm1::Button3Click(TObject *Sender)
: : {
: :         int k=0, first=0;
: :         for(int i=0;i<iFileLength;i++)
: :         {
: :                 if(pszBuffer[i]=='#')
: :                 {
: :                         if(i==k)
: :                         {
: :                                 if(first==0)
: :                                 {
: :                                         p=new ccon;
: :                                         start=p;
: :                                         first=1;
: :                                 }
: :                                 else
: :                                 {
: :                                         p->next=new ccon;
: :                                         p=p->next;
: :                                 }
: :                                 p->next=NULL;
: :                                 p->str=new char[2];
: :                                 p->str[0]='#';
: :                                 p->str[1]=NULL;
: :                                 k++;
: :                         }
: :                 }
: :                 else if((pszBuffer[i]>='a' && pszBuffer[i]<='z') ||(pszBuffer[i]>='0' &&     pszBuffer[i]<='9') ||pszBuffer[i]=='_');
: :
: :                 else
: :                 {
: :
: :                         if(i!=k)
: :                         {
: :                                 i--;
: :                                 p->next=new ccon;
: :                                 p=p->next;
: :                                 p->next=NULL;
: :                                 p->str=new char[i-k+2];
: :                                 int j;
: :                                 for(j=0;k<=i;j++,k++)
: :                                 {
: :                                         p->str[j]=pszBuffer[k];
: :                                 }
: :                                 p->str[++j]=NULL;
: :                         }
: :                         else
: :                         {
: :                                 p->next=new ccon;
: :                                 p=p->next;
: :                                 p->next=NULL;
: :                                 p->str=new char[2];           //<<==이부분에서 오류가 납니다.
: :                                 p->str[0]=pszBuffer[k++];
: :                                 p->str[1]=NULL;
: :                                 k++;
: :                         }
: :                 }
: :         }
: : }
: :
: : 오류가 나는곳의 코드와 같은코드가 다른부분에도 있는데,
: : 그부분에서는 오류가 발생하지 않습니다.
: : 그리고 메모컴포넌트에 글자마다 색을 다르게 나타낼려고 하는데,
: : 메모컴포넌트의 폰트 컬러를 바꾸어주면 메모컴포넌트 전체의 글자색이 다바뀌는데
: : 어떻게 나타내야하는지도 좀 알려주시면 고맙겠습니다.
: :
: :

+ -

관련 글 리스트
31225         Re:Re:C소스파일을 읽어서 메모컴포넌트에 나타내려고 하는데요... 김백일.cedar 782 2002/11/25
22839         Re:답변 감사합니다. 구현방법에 대해서 추가질문인데요. 도마뱀 630 2002/11/25
22855             Re:Re:답변 감사합니다. 구현방법에 대해서 추가질문인데요. 이명주 767 2002/11/26
22843             Re:Re:답변 감사합니다. 구현방법에 대해서 추가질문인데요. 조준회 626 2002/11/25
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.