| 2018/03/17(Sat) 22:43:47 編集(投稿者)
> > XMLに書き出す前のデータ(by桐)には、桐で設定した強制改行文字 > > が含まれています(当該では音符記号「♪」で設定してある)。 > > > > さて、この強制改行文字入りデータをXMLに書き出す際には、「♪」 > > をふつうの改行(CR+LF?)に変換できるのでしょうか?
これって普通に出来ないから、実は意外と難しんですよ。
すでに限りなく解決に近づいていると思いますが、当方では[コマンド]コマンドを利用する方法を試してみたのでご参考までにご覧ください。
■[コマンド]コマンドを利用する方法
印字コマンドでコントロール文字を展開するがデフォルトのオフの場合、
以下のようにするのもひとつの方法です。
なお、印字コマンドでコントロール文字を展開するがオンの場合には、
&data = #文字置換( &data, "\", "\\" )
を追加すればOKでしょう。
<参考>
変数宣言 文字列{ &data, ¶meter, &command } 変数宣言 文字列{ &string, &stringList } 変数宣言 文字列{ &comma = #jis( #hex("2C") ), &WQ = #jis( #hex("22") ), &pipe = #jis( #hex("7C") ) } 変数宣言 整数 { &cnt }
&data = "あいう,えお♪かきくけこ♪" ** &data = #文字置換( &data, "\", "\\" ) /* 印字コマンドでコントロール文字を展開するがオンの場合 */ &data = #文字置換( &data, &comma, &pipe ) &data = #文字置換( &data, "♪", ",_13,_10," )
¶meter = #u &stringList = &data &cnt = 1 &string = #対応文字列( &stringList, &cnt ) 繰り返し ( &string <> #u )
if ( &string <> "_13" .and &string <> "_10" )
&string = #文字置換( &string, "&", "&" ) &string = #文字置換( &string, "<", "<" ) &string = #文字置換( &string, ">", ">" ) &string = #文字置換( &string, "'", "'" ) &string = #文字置換( &string, &WQ, """ )
&string = &WQ + &string + &WQ + &comma &string = #文字置換( &string, &pipe, &comma ) else &string = &string + &comma end
¶meter = ¶meter + &string 確認 ¶meter
&cnt = &cnt + 1 &string = #対応文字列( &stringList, &cnt ) 繰り返し終了
&command = "印字 " + ¶meter
確認 &command
終了
<メモ>
& & アンパサンド (ampersand) < < 小なり (less than) > > 大なり (greater than) ' ' アポストロフィ (apostrophe) " " クォーテーションマーク (quotation mark)
|