過去の桐井戸端BBS (桐ver.5) |
14145 | 固定長のkifix.exeと印字コマンド | wa2new | 2001/11/21-10:30 |
おうかがいします。 いまだに桐V5ですが、 固定長の書き出しを印字コマンドですべきところを 面倒なので いつもkifix.exe @????.parとバッチ処理しています。 エラーメッセージ”漢字コードが2つのフィールドにまたがっています”で中断します。 仕方なく 表編集にもどり #全角 でフィールドデータをでっかくしてクリアーしています。 これでは ACCESSなどのフォームにもっていくといくら幅があっても足りません。(全角なので 横に 広がりすぎ!) ここで質問ですが もし 印字コマンド で固定長に出力した場合ですが? 前出の”漢字コードが2つのフィールドにまたがっています” は 出力結果 にどのような影響があるのでしょうか? 予想1・・・・特殊文字がヘンなテキストができる(Windowsdで開いたとき) 対策1・・・・事前に特殊文字を 1つ1つ 問題ないようにしたいのですが この場合 どういう種別の文字を抽出し直せば良いのでしょうか? よろしく お願いします。 | |||
14146 | Re:固定長のkifix.exeと印字コマンド | Ogo | 2001/11/21-11:04 |
記事番号14145へのコメント >エラーメッセージ”漢字コードが2つのフィールドにまたがっています” >で中断します。 固定長ファイルの定義を仮に次の通りとします。 項目1……9文字 項目2……9文字 項目3……9文字 項目1<-|項目2<-|項目3<-| 123456789012345678901234567 当たり前の話ですが、固定長の場合の「文字数」 とは絶対に半角で計算します。 で、上記エラーメッセージはこういうことです。 項目1<-|項目2<-|項目3<-| 123456789012345678901234567 全角文字を何も考えずにいれる 全角文字の5文字目は、半角計算で 9 文字目と10文字目にまたがっています。 が、これは1文字の途中に項目区切りが指定されているということで、全くの「規格外データ」なのです。 >仕方なく 表編集にもどり #全角 でフィールドデータをでっかくして >クリアーしています。 >これでは ACCESSなどのフォームにもっていくといくら幅があっても >足りません。(全角なので 横に 広がりすぎ!) クリアーする方法が間違っています。 指定された固定長データの規格(定義)をもう一度確認して、 その規格(定義)を満たすテキストファイルを作る方法を構築し直すべきです。 >ここで質問ですが もし 印字コマンド で固定長に出力した場合ですが? 印字コマンドを使っても、「規格外データ」を出力してしまっては、 相手先コンピューターで読むことはできないと思います ( KIFIX ならばテキストを作成する段階でエラーを表示してくれるが、 印字コマンドを使うと、テキスト作成の段階でエラーが表示されない代わりに、 提出した相手先から「読み込み不能」で突き返されて、「エラーが出ないのに?」と 疑問が増すばかりと思われます)。 # そもそも相手先が ACCESS だったら、固定長 # を使わずに、 K3 形式で書き出しておいて、 # 拡張子だけを「*.CSV」にリネームするのが # 一般的なはずですが? # 固定長は大型コンピューターのデータベース # とデータを交換する際に使われる筈ですが? | |||
14179 | Re:固定長のkifix.exeと印字コマンド | wa2new | 2001/11/22-12:51 |
記事番号14146へのコメント ●Ogoさんへ、いつも的確なご回答をされているのを拝見しています。 今回も素早い回答をありがとうございました。 >固定長ファイルの定義を仮に次の通りとします。 >項目1<-|項目2<-|項目3<-| >123456789012345678901234567 >全角文字を何も考えずにいれる >全角文字の5文字目は、半角計算で 9 文字目と >10文字目にまたがっています。 >が、これは1文字の途中に項目区切りが指定さ >れているということで、全くの「規格外データ」 >なのです。 ●なるほど。じゃあバイト数を数えさせて奇数だったら半角空白を加えるとOKですね。 >>ここで質問ですが もし 印字コマンド で固定長に出力した場合ですが? >印字コマンドを使っても、「規格外データ」を >出力してしまっては、相手先コンピューターで >読むことはできないと思います( KIFIX ならば >テキストを作成する段階でエラーを表示してく >れるが、印字コマンドを使うと、テキスト作成 >の段階でエラーが表示されない代わりに、提出 >した相手先から「読み込み不能」で突き返され >て、「エラーが出ないのに?」と疑問が増すば >かりと思われます)。 ●良かったです。お答えに感謝します。 印字でやってツボにはまるとこでした。 ># そもそも相手先が ACCESS だったら、固定長 ># を使わずに、 K3 形式で書き出しておいて、 ># 拡張子だけを「*.CSV」にリネームするのが ># 一般的なはずですが? ●はい。今回はODBC経由で*.mdbを含み更新してる汎用システムなので 先方SEさんの指定でやむなく固定長を採用してるのです。 有り難うございました。 | |||
14180 | Re:固定長のkifix.exeと印字コマンド | Ogo | 2001/11/22-13:34 |
記事番号14179へのコメント >●なるほど。じゃあバイト数を数えさせて奇数だったら >半角空白を加えるとOKですね。 #部分列( str , n1 【 | , n2 】 ) という関数のヘルプを良く読んでみて下さい。 特に知っておくべきことは、 n1 と n2 に負の数(マイナス)を指定するとどうなるかです。 |