[53] ひな形への流し込み出力
端月 [2007/01/12 18:30:00]
初めまして。Cassaavaをデータベースとして使っています。1レコードがかなり長くても受け付けてくれる点、そして何よりデータの中に,や"が含まれていても、壊れないのが気に入っています。横文字文献をテキストデータとして管理しているので、,や"は必須でして、""で括った,や"を含むCSVを間違わずに認識してくれる表アプリケーションって意外に少ないのです。データを壊されて何度泣いたことやら。
要望なのですが、一定のひな形を用意しておいて、そこにデータを流し込んでファイル出力ないし、クリップボードにコピー、というようなことはできないでしょうか。例えば、文献データベースには、いろいろな書誌データやメモを詰め込んでありますが、一定の項目だけを一定の形式で書き出したいときがあります。
著者:タイトル、出典、出版社、xxxx年 とか
著者「タイトル」『出典』出版社、xxxx年 とか
そのときに、例えば
[define]
$_著者_$ = 1
$_タイトル_$ = 3
$_出版年_$ = 4
[output]
$_著者_$: 「$_タイトル_$ 」($_出版年_$)
などと書くと、その行や選択範囲がその形で出力するような。
使い方によっては、ホームページの日記作成などにも使えるのではないかと思います。
文中に貼り付けるための1行コピーくらいなら、[x,y]を変数に定義して、+でつなげたマクロを作ればいいのかしら、と思ったのですが、クリップボードに送るやり方がわからず、挫折しました。
テキストエディタと連携して使う人には便利かと思います。ご検討ください。
Re: [53] ひな形への流し込み出力
あすかぜ [2007/01/13 11:54:00]
書き込みありがとうございます。
雛形への流し込みは、「エクスポートマクロ」という仕組みを使うのがお勧めです。
Cassavaのフォルダに「Export」というフォルダがあるので、そこにマクロを置き、[ファイル]-[エクスポート]で実行します。
例えば、端月さんの例では、Exportフォルダ「134.txt.cms」という名前のファイルを作り、内容を次のようにします。
for(y = SelTop; y <= SelBottom; y++){
writeln([1,y] + ": 「" + [3,y] + "」(" + [4,y] + ")");
.
クリップボードへコピーするには、+でつなげた文字列を表のどこかに書き込み、カーソル位置を合わせて「Copy();」を実行する必要があります。クリップボード系の組み込み関数は用意していないので汚いです。
Re: [53] ひな形への流し込み出力
端月 [2007/01/14 20:57:00]
ありがとうございます!
何年も前から困っていた課題が解決しました。
「\"」という、いかにも誤動作しそうな組み合わせもちゃんと出力できています。何度直しても壊れるので、直す気を失っていた大元データを本気で直す気になりました。
クリップボード書き出しは、1行以上をやることは滅多にないので、
「 行末に書き出し → Cut() → 文頭に戻る 」
というやり方でできました。
ブログもどきのCGIデータからHTMLに移行するマクロもなんとか書けそうです。
文系人間にとっては、表計算ソフトであっても、テキスト操作に使うことが多いのです。Hallo World! から、一歩も進まないエンドユーザーでも、なんとかできそうな気になれるのがうれしいです。
また助けを求めに来るかもしれません。今後ともよろしくお願いいたします。
Cassava専用の方から返信しようとしたのですが、「句読点がない」として、拒否されてしまったもので、こちらから投稿します。新しいスレッドになってしまいますかしら。
Re: [53] ひな形への流し込み出力
あすかぜ [2007/01/14 22:25:00]
うまくいったようでよかったです。また何かわからないことがあれば聞いてください。
マクロについては『「Cassava」応用利用研究室』が詳しいのでそちらもどうぞ。
http://keikichi.hp.infoseek.co.jp/cassava/
Cassava専用掲示板はスパムよけの判定を間違っていて、何を入力してもはじかれてました。すみません。修正しておきました。