2013-08-07 2 views
1

블록을 CSV로 변환하려면 this library을 사용하고 있습니다. 그러나 쉼표가있는 문자열을 발견하면 해당 문자열이 형 성됩니다. 일반적으로 중괄호가 Excel을 혼동하는 것 외에는 문제가 아닙니다.문자열을 "언 몰드"하는 방법은 무엇입니까?

따라서 {This, is a test}| {this | is a test} | (쉼표의 각면은 별도의 셀에 입력 됨)으로 바뀝니다.

처음에는 쉼표를 벗어나야한다고 생각했지만 중괄호를 따옴표로 바꾸면됩니다. 이 작업을 신속하게 수행 할 수있는 권장 방법이 있습니까?

답변

4

'% csv.r의 MOLD는 쉼표가 포함 된 값을 큰 따옴표로 묶는 것입니다.

하지만 불행히도 'MOLD는 더 나은 가독성을 위해 큰 따옴표 대신 중괄호로 50 자 이상의 문자열을 넣습니다.

나는이 동작에 영향을 미치는 방법을 모르는, 그래서 난 그냥 DBL-QUOTE, 단순히 대신

dbl-quote: func[s][rejoin [{"} s {"}]] 
2

사용 csv-tools.r으로 정의 될 것입니다 '로 Item: mold ItemHeading: mold Heading에 MOLD'를 대체 할 것이다. 그것은 기능이 내장되어 있으며 Excel과 호환되는 것으로 확인됩니다. Rebol 2와 3에서 작동하며 수년간 생산에 사용되었습니다.

+0

csv-tools.r의 to-csv 함수는'[[ "one" "two" "three"] [ "two"two "three"]]'와 같은 중첩 된 블록에 문제가있는 것 같습니다. –

+0

'to-csv' 함수는 파일의 문서에있는 것처럼 단 일행 변환기입니다. CSV의 한 줄에는 중첩 된 블록이 없으며 개념적으로 일련의 개별 값입니다. 'to-csv'와 함께'map-each' 함수를 사용하여 줄의 블록을 생성 한 다음 파일에 쓰기 위해'write'를 사용하십시오. – BrianH