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
[14347] Re:값을 읽어와야 하는데 어떻게 해야 될지 모르겠습니다.
소지영(몽인) [neonim] 1907 읽음    2012-07-07 22:23
질문을 맞게 이해 했나 모르겠네요..

while문을 이용해서 파싱해도 되고요.. TStirngList를 이용해도 됩니다.

TStringList에 보면 DelimiterText가 있는데 이를 이용하면 다음과 같습니다.

// AValue가 'a;b;c;d;e;f;g;'일 경우.
procedure Test(const AValue: string);
var
  i: Integer;
  slList: TStringList;
begin
  slList:= TStringList.Create;
  try
    slList.Delimiter := ';';
    slList.DelimiterText := AValue;

    AStringGrid.Row[1].Assign(slList);    <= 그리드의 Row가 1인곳에 넣는 부분... 문법은 틀릴수 있음.
  finally
    if Assigned(slList) then
      FreeAndNil(slList);
  end;
end;


slList를 for문을 이용해서 그리드에 넣거나 그리드의 Row에 바로 넣거나 할수 있습니다.

두번째 변경된 값들이..
a
b
c
d
e
f
g
이런 형태라고 했는데 값들에 캐리지리턴값이 있는것을 표현 한건가요?
그렇다면 그냥 TStringList에 그냥 값을 넣으면 됩니다.
procedure Test(const AValue: string);
var
  i: Integer;
  slList: TStringList;
begin
  slList:= TStringList.Create;
  try
    slList.Text := AValue;

    AStringGrid.Row[1].Assign(slList);  <= 그리드의 Row가 1인곳에 넣는 부분... 문법은 틀릴수 있음.
  finally
    if Assigned(slList) then
      FreeAndNil(slList);
  end;
end;


위의것과 비교 하시면 이해햐기 편할겁니다.
TStringList를 한번 찾아 보세요..


주의: delphi에서 작성하지 않고 바로 적는것이라 컴파일이 안될수 있습니다.
        참고만 하세요.







vhrrns 님이 쓰신 글 :
: 신호를 보내면
:
: a;b;c;d;e;f;g;
:
: 이런식으로 와서
: 결과를  ; 로 구분하여 자르기 위한 선언으로
:
: aMsg : Array[0..100] of String;
: tmpStr,memotext : String;
: Out_CpeIp : String;
:
: 이렇게 변수를 주고
:
: if IFDeviceDataList <> nil then
:    f_dm.Common.SendDataToAPS(IFCustomerData , IFDeviceDataList, nil, nil, ResultMessage, ResultSeqNo, WipNumSeqNo);
: i := 0;
: tmpStr := ResultMessage;
: while Pos(';',tmpStr) > 0 do
: begin
:    aMsg[i] := Copy(tmpStr,1,Pos(';',tmpStr)-1);
:    inc(i);
:    tmpStr := Copy(tmpStr,Pos(';',tmpStr)+1,Length(tmpStr)-Pos(';',tmpStr));
: end;
: if Trim(tmpStr) <> '' then
: begin
:    aMsg[i] := tmpStr;
: end;
:
: 이렇게 구분해서 읽어와서 그리드에 뿌려왔습니다.
: 근데 정보가
:
: a
: b
: c
: d
: e
: f
: g
:
: 이런 식으로 오게 바뀌었는데 어떤 방향으로 코딩을 해가야 값들을 불러올 수 있을까요?_?

+ -

관련 글 리스트
14342 값을 읽어와야 하는데 어떻게 해야 될지 모르겠습니다. vhrrns 1784 2012/07/03
14347     Re:값을 읽어와야 하는데 어떻게 해야 될지 모르겠습니다. 소지영(몽인) 1907 2012/07/07
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.