델파이에서 XML에 CRLF를 쓰고 읽으려고 하면
CRLF를 써도 읽어지는 것은 LF만 읽어진다.

인터넷에서 열심히 뒤져 봐도 뾰족한 대안을 못찾았다.

그래서 생각해낸 방법은 LF만 있을 경우 LF를 모두 CRLF로 바꾸면 된다.

먼저 LF만 있는지 확인하는 방법


function CheckOnlyLF(sSrc: string): boolean;
var
  iCrLf, iLf : integer;
begin
  result := false;

  iCrLf := Pos(#13 + #10, sSrc);
  iLf := Pos(#10, sSrc);

  if (iCrLf = 0) and (iLf > 0) then result := true;
end;

이 소스는 LF를 하나만 검색하면 그냥 나와버린다.

그리고 LF를 모두 CRLF로 변경하려면 간단하게 할 수 있다.

function LfToCrLf(sSrc: string): string;
begin
  if CheckOnlyLF(sSrc) = true then
    result := StringReplace(sSrc, #10, #13+#10, [rfReplaceAll, rfIgnoreCase]);
end;

이 함수에도 좀 문제가 있을 수 있다.
문자열에 LF와 CRLF가 섞여있으면
CRCRLF가 되어 버린다. -.-;;
하기야 이렇게 표시에는 문제가 없지만 문자가 하나 더 추가되는 것이 찜찜하면
모든 문자열을 일일히 검색하면서 CRLF인지 LF인지를 검색하는 수 밖에 없다.

이렇게 까지하는 것은 귀찮아서 생략
혹시 그렇게 프로그램을 짜신 분은 트랙백해주세요. ^^;


Posted by 떡잎
파이어버드에서 INSERT할 때 CRLF를 추가하는 방법

INSERT INTO TEST_TABLE(testCode, testMsg)
 VALUES (1, '1 Row'||ASCII_CHAR(13)||ASCII_CHAR(10)||'2 Row')

알고나면 간단한데...
Posted by 띠리
BLOG main image
프로그래밍 공부하면서 써가는 개인 노트 (따라서 여기에 씌여있는 소스의 신빙성을 보장 못함 -.-;;) 이 블로그 보면서 틀린 점이 있으면 꼬옥 알려주세요. by 띠리

공지사항

카테고리

분류 전체보기 (323)
Win32 SDK 초보 (27)
통신관련 (11)
MFC TIP (20)
C/C++ TIP (10)
개발기타 (10)
링크 (2)
견물생심 (24)
이것저것 (8)
용어메모 (3)
데이터베이스 (32)
비주얼 베이직 (10)
하드웨어 (3)
C# (42)
Xcode (3)
델파이 (82)
홈페이지 (5)
MindStorm (0)
낙서 (5)
스크래치 (0)
기타 (6)
아두이노 (1)
라즈베리파이 (2)
안드로이드 (6)
파이썬 (0)
WEB (2)
Total : 995,619
Today : 109 Yesterday : 316