NMHTTP 컴포넌트를 사용해서 인터넷 상의 html파일을 가져왔습니다.
nmhttp1.get('xxxxx.com/index.html'); 요런 식으로요..
그리구 나서 TMemo를 이용해서 그 파일의 body요소를 (NMHTTP 컴포넌트에서는 body가 TStrings가 아니라 string이더군요) 받아보니 라인피드가 안되고 이상한 에스케잎문자가 나타나더군요.
한데 TRichedit를 사용해서 그 파일의 body요소를 받아보니 에스케잎 문자는 나타나지 않았습니다. 자동적으로 그 에스케잎 문자를 라인피드로 인식해준 거 같은데.
이런 에스케잎 문자를 가지고 있는 string을, 라인피드된 TStrings로 바꿔줄 수 있는 방법은 없을까요?
에스케이프문자가 아니라 라인피드(#10)와 캐리지리턴(#13)을 처리하는데 있어서 두개의
컨트롤이 처리하는 방식이 다르기 때문에 생기는 현상입니다.
TMemo에서 줄바꿈은 #13#10만을 허용합니다. 다르게 들어가면 그냥 그 코드가 아스키
문자로 그대로 보이게 되구요..
TRichEdit에서는 줄바꿈을 #13#10도 허용하지만 그냥 #10만 들어가도 처리를 합니다.
물론 #10#13도 줄바꾸어주긴하지만 뒤의 #13은 그냥 아스키문자로 보이게 되죠...
설명을 들어보니 줄바꿈이 #10으로 된것 같군요. TMemo에서 볼려면 이걸 #13#10으로 바
꾸어주시면 됩니다.
Memo1.Text := StringReplace(Body요소, #10, #13#10, rfReplaceAll);
^^ 항상 즐코하세요.
김지엽 wrote:
> NMHTTP 컴포넌트를 사용해서 인터넷 상의 html파일을 가져왔습니다.
>
> nmhttp1.get('xxxxx.com/index.html'); 요런 식으로요..
>
> 그리구 나서 TMemo를 이용해서 그 파일의 body요소를 (NMHTTP 컴포넌트에서는 body가 TStrings가 아니라 string이더군요) 받아보니 라인피드가 안되고 이상한 에스케잎문자가 나타나더군요.
>
> 한데 TRichedit를 사용해서 그 파일의 body요소를 받아보니 에스케잎 문자는 나타나지 않았습니다. 자동적으로 그 에스케잎 문자를 라인피드로 인식해준 거 같은데.
>
> 이런 에스케잎 문자를 가지고 있는 string을, 라인피드된 TStrings로 바꿔줄 수 있는 방법은 없을까요?
>
>