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
[13384] 죄송합니다. 님의 질문을 제대로 이해를 못했었군요.
김백일 [] 861 읽음    2001-12-05 15:28
까마귀 님이 쓰신 글 :
:
: 님이 주신 답변은 Interger Data를 String에 넣는 방법입니다. 그것은 저도 알고 있는 내용이고요...
: 저는 String의 값은 포맷을 통해 Integer Data로 변환하고 싶은데요...히...
:
: 예전 도스버젼에서 사용되던 sscanf(const char *format,...)과 같은 함수요...쯥...

그러면 그냥
#include <stdio.h>

하시고

sscanf(dPosMain.c_str(), "%d %d %d %d", &Top, &Left, &Height, &Width);

로 하시면 됩니다.

또는 C++ 식으로 쓰시자면

#include <sstream>

하시고

stringstream ssPosMain;
ssPosMain << dPosMain.c_str();
ssPosMain >> Top >> Left >> Height >> Width;

단, 여기서 두 방법 모두
String dPosMain="200,200,640,480";
로 하시면 안되고요,
String dPosMain="200 200 640 480";
로 해야 된다는 건 아시겠죠?

:
: 김백일 님이 쓰신 글 :
: : 까마귀 님이 쓰신 글 :
: : : 저는 계속 질문만 하는군요..^_^
: : :
: : : AnsiString을 이용하여 각종 정보를 ini화일에 저장한후 읽어들이려고 합니다.
: : : 그런데 AnsiString Class에는 출력함수는 있는데 입력함수가 없어서...
: : : 물론 AnsiString::Pos(), AnsiString::SubString와 StrToInt()를 이용하는 방법이 있지만,
: : : 소스만 길어지는 듯하고, TIniFile::ReadInteger()를 이용하면, INI 화일의 줄이 많아져서
: : : 별로 달갑지 않아어요...쯥.
: : :
: : :
: : : void __fastcall TMain::FormCreate(TObject *Sender) {
: : :     TIniFile *ini;
: : :     String dPosMain="200,200,640,480";
: : :     ini=new TIniFile(ExtractFilePath(Application->ExeName)+"cmg.ini");
: : :     dPosMain=ini->ReadString("Main","Location",dPosMain);
: : :     delete ini;
: : :     _________________________________________________________________________
: : :     dPosMain.여기가 없어서 쯥...^_^!...("%d,%d,%d,%d",Top,Left,Height,Width);
: :       dPosMain.sprintf("%d,%d,%d,%d",Top,Left,Height,Width);
: : //또는 dPosMain.printf("%d,%d,%d,%d",Top,Left,Height,Width);
: : // 참고로 printf()는 final formatted string의 길이를 리턴합니다.
: : //또는 dPosMain.Format("%d,%d,%d,%d", ARRAYOFCONST(((int)Top),((int)Left),((int)Height),((int)Width)));
: : :     -------------------------------------------------------------------------
: : :     }
: : :
: : : void __fastcall TMain::FormClose(TObject *Sender) {
: : :     TIniFile *ini;
: : :     String dPosMain;
: : :     ______________________________________________________
: : :     dPosMain.sprintf("%d,%d,%d,%d",Top,Left,Height,Width); //여기는 있는데....^_^!...
: : :     ------------------------------------------------------
: : :     ini=new TIniFile(ExtractFilePath(Application->ExeName)+"cmg.ini");
: : :     ini->WriteString("Main","Location",dPosMain);
: : :     delete ini;
: : :     }

+ -

관련 글 리스트
13376 AnsiString에 대하여 까마귀 972 2001/12/05
13378     sprintf() 또는 printf() 또는 Format()을 쓰세요. 김백일 1158 2001/12/05
13379         Re:감사합니다만..... 제가 원하는 답변이 아니군요... 까마귀 826 2001/12/05
13384             죄송합니다. 님의 질문을 제대로 이해를 못했었군요. 김백일 861 2001/12/05
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.