06-13-2013, 03:52 PM,
|
|||||
|
|||||
Clipboard.get-string のバグ?
エクセルからコピーされたデータをClipboard 経由で、グリッドに貼り付けを行う際、
ひとつのセルのなかで改行されている場合に、Curl側でその改行を削除し、ひとつのセルの中のデータとして整形したいと思ったのですが、 うまく判別する方法を考えられませんでした。 エクセルからコピーされたデータとしては、セル内の改行は、LF(ラインフィード)になっているので、 この文字を削除すればよいかと思ったのですが、 Clipboard.get-string で取得した後の文字は、LFは、CR(キャリッジリターン)に変換されているため、 判別する基準として利用できません。 セル内に改行がある場合はダブルコーテーションでくくられるので、 それを判断の基準にしようかと思ったのですが、エスケープ(2重に)されたダブルコーテーションがあった場合や、 改行直前にダウブルコーテーションがあった場合など、 判別が複雑になるため、今のところ、連続した二つのダブルコーテーションはすべて削除してしまう、 という方法に落ち着きました。 WindowsのようにCR とLF を混合しない、Mac や Linux に対応しているための問題なのかもしれませんが、 エクセルからのコピーは、現場では多用されるので、できれば対応してもらいたいです。 |
|||||
06-20-2013, 11:53 AM,
|
|||||
|
|||||
RE: Clipboard.get-string のバグ?
「エクセルからのコピーは、現場では多用されるので、できれば対応してもらいたいです。」 具体的に、どのような対応ですか? ちなみに、Excelのセル内改行コードについて、このような情報もあるみたいです: 「Excelの改行コードが0Aだけなのは昔からの仕様で、なぜそうなっているのか本当の理由はわかりません。ExcelはもともとMacintosh用に開発されたアプリだから・・・という話も聞きますが、本当のところはわかりません。理由はともあれ、Excelの改行コードは0Aだけだということです。 では、セル内の改行コードはどんなときも0Aだけかというと、実は違います。手動操作でAlt+Enterキーを押してセル内改行をした場合には、改行コードとして0Aだけが入力されますが、マクロなどでユーザーが明示的に0D 0Aの改行コードを使用した場合は、そのまま0D 0Aが保存されます。実際にやってみましょう。次のマクロで、セルB2に0D 0Aで改行したデータを入力してみます。 」 http://officetanaka.net/excel/vba/tips/tips89.htm |
|||||
06-28-2013, 01:34 PM,
|
|||||
|
|||||
RE: Clipboard.get-string のバグ?
説明不足ですいません。私の「対応」が指す内容は、
キャリッジリターンと、ラインフィードを分けて取得したい、という意味です。 現在、Curlでは、キャリッジリターン、ラインフィードのどちらも LF として取得されている、という認識です。 下記サンプルでは、"\r\n"=CR+LF も、"\n"=LF も、どちらも文字コードとしては「10」で表示されます ASCIIに準じると、各改行コードの文字は、CR(復帰、0x0D=16)、LF(改行、0x0A=10)となり、 どちらも、int形式では 10 となることが、このように判断しました。 (NewlineSequence の指定が間違っていたらご指摘ください。) Code: {let input-ta:TextArea = ただ、heavybugtracker さんが引用してくださった内容を見る限り、 キャリッジリターン、ラインフィードとを個別に判別できたとしても、 エクセルのシートからコピーされたデータをそのままグリッドに貼り付けるには、 正確に"(ダブルクォーテーション)でくくられた情報を判断する処理が必要そうですね。 |
|||||
« Next Oldest | Next Newest »
|
Possibly Related Threads... | |||||
Thread | Author | Replies | Views | Last Post | |
CsvDataReader のバグ? | umemura | 2 | 4,405 |
09-11-2014, 01:52 PM Last Post: rom |
|
BigDecimal.to-String で、小数点桁に0が増えてしまう | umemura | 1 | 8,285 |
12-19-2013, 02:03 PM Last Post: umemura |
|
なぜ String から BigDecimal にキャスト可能なのか | umemura | 2 | 4,475 |
12-12-2013, 01:24 PM Last Post: crispincross |
|
RecordSort として String をパースすることはできませんでした | umemura | 2 | 3,700 |
11-01-2011, 04:09 PM Last Post: c-s |
Users browsing this thread:
3 Guest(s)
3 Guest(s)