|
문장을 특정문자를 기준으로 나누는 문제인 것 같네요.
TStringList를 이용하면 토큰을 나눌 수 있습니다.
AnsiString str = "aa bb cc";
TStringList* strs = new TStringList;
strs->Delimiter = ' ';
strs->DelimitedText = str;
for(int i = 0; i < strs->Count; i++)
Memo1->Lines->Add(strs->Strings[i]);
delete strs;
파일을 읽어서 한 줄 읽을 때 마다 위의 구문을 쓰시면 될 것 같네요.
초보 님이 쓰신 글 :
: source와 text 파일의 내용은 아래와 같습니다.
: 이 프로그램을 C++ builder로 전환하려고 하는 데 어려움이 많아 이렇게 도움을 청합니다.
: 여러 분들의 조언을 얻어 나름대로 해 보았으나 추천해 주신 방법의 일부가 정상적으로 동작하지 않는 부분이 있어 제대로 되지 않았습니다.
: 그래서 이렇게 부득이 하게 소스를 올립니다.
: 혹시 어떻게 처리해야 할 지 아시는 분은 답변 부탁드립니다.
:
: // source.
:
: tmp: string; // 한 라인을 읽어서 저장할 문자열 변수.
:
: lineCount := 0;
: AssignFile(Ftemp, '.\test.txt');
: Reset(Ftemp);
:
: while Not Eof(Ftemp) do
: begin
: Readln(Ftemp, tmp); // 한 라인을 읽어서 스트링 tmp에 저장.
: i := pos(' ', tmp); // 각 칼럼은 하나이상의 공백으로 구분.
: Col1[lineCount] := Trim(Copy(tmp, 1, i)); // 첫번째 문자열을 저장.
:
: tmp := TrimLeft(copy(tmp, i, Length(tmp)));
: i := pos(' ', tmp);
: Col2[lineCount] := Trim(Copy(tmp, 1, i)); // 두번째 문자열을 저장.
:
: tmp := TrimLeft(copy(tmp, i, Length(tmp)));
: Col3[lineCount] := Trim(Copy(tmp, 1, Length(tmp))); // 세번째 문자열을 저장.
:
: inc(lineCnt);
: end;
:
:
: // test.txt file 내용.
:
: i my mine
: you your you
: he his him
: she her her
:
|