안녕 하세요 ..
TStringList에 대해서 궁금한 점이 있어서 이렇게 글을 올립니다 ...
다름이 아니라..
aaaa|bbbb|cccc|(랜덤한 data의 바이트값, 길이는 고정)
이런 데이터를 TStringList에 추가 했을 경우에요...
'|' 이 문자를 기준으로 해서 짤라 낼 수 있나요..
ExtractStrings(['|'], [' '], PChar(위의 데이터), TStringList);
이런씩으로 하면 될 것 같은데요.. 맨 뒤에 있는 랜덤한 바이트 값이 문제 입니다.
0 ~ 255 까지 아무값이나 데이터를 가질 수 있기 때문이죠..
그리고,
만일에.. '|' 를 기준으로 데이터를 잘라 다구 했을 때.....
TStringList에 한 번 저장 된 값을 가져 오는거 잖아요..
이때.. 맨 뒤에 있는 랜덤한 바이트 값을 제대로 가져 오는지요..
랜덤한 값이기 때문에.. #13, #10이 나오지 말란 보장이 없을 듯 해서요..
아무런 영향을 안 미친다면이야. . 괜찮지만.. 제가 아직 델파이에는 초보라서요..
읽어 보시고.. 많은 답변 부탁드립니다..
그럼.. 좋은 하루 보내세요...
자가 있으면 생각처럼 잘 작동하지 않습니다. 파싱 함수를 만드시는게....
다음은 제가 쓰는 함수 입니다..
function StringSplit(Section : string; Line : string) : String;
var ReturnList : TStringList;
ResultText : string;
begin
ReturnList := TStringList.Create;
while Pos(Section, Line) > 0 do
begin
ReturnList.Add( copy(Line, 1, Pos(Section, Line) - 1) );
Line := Copy(Line, Pos(Section, Line) + 1, Length(Line) - Pos(Section, Line));
end;
ResultText := ReturnList.Text;
ReturnList.Free;
ReturnList := nil;
Result := ResultText;
end;
받는 쪽에서는
StringList.text := StringSplit('|', 'aaaa|bbbb|cccc|')
하시면 됩니다.