過去の桐井戸端BBS (桐ver.8)
15120 K3ファイルに書き出しをしたら一番下の行に出る「・」を出さないか又は消す方法を教えて欲しい 4156 2002/02/16-10:11
表をK3ファイルに書き出しをして、TXTで見たときに、一番下の行に「・」が出てしまいます。
この「・」を出さない方法を知っている方が、
もしくは消す方法を知っている方がいらっしゃいましたら是非教えて下さい。
15121 Re:K3ファイルの書き出し hidetake 2002/02/16-10:53
記事番号15120へのコメント
「・」と言うのは EOF (1A) の事だと思いますが、
各レコードは復帰改行(0D0A)で区切る。
ファイルは1A で終わるというのが K3 ファイルの仕様です。

それに対し CSV はファイルの終わりに EOF (1A) を付加しないのが仕様のようで、
もし 1A があってもそれは1行のデータとして取るべきと言うが本来の仕様のようです。
(桐のヘルプファイルの記述より)

既にあるテキストファイルの EOF (1A) を削除する
場合には次のようなバッチファイルでも可能です。
----------------------------------------
@echo off
if exist %1 goto execute
echo del_eof.bat filename.ext
exit

:execute
if exist %1.$$$ del %1.$$$
ren %1 %1.$$$
copy /y %1.$$$ /a %1 /b > nul
if exist %1.$$$ if exist %1 del %1.$$$
----------------------------------------


15122 Re:K3ファイルの書き出し hidetake 2002/02/16-11:04
記事番号15121へのコメント
従って、本当に欲しいのは K3 ファイルなのか?
CSV ファイルなのか? あるいは、K3 見たいなCSV ファイルなのか?

それによって、書き出し方法を K3 を使うのか、
CSV を使うのか、あるいは、K3 で書き出して 1Aを後で削除するのか、
それとも一括よりでも作り印字コマンドを使った書き出しルーチンを独自に
作るとかの方法があると思います。


15124 Re:K3ファイルの書き出し ( EOF 消去) Ogo 2002/02/16-22:48
記事番号15122へのコメント

単にテキストファイルを開いてから、
上書き保存すれば EOF が消える仕様(設定)になっている
テキストエディターは多いと思いますけど。

もちろん、内容を改変するか(改行を追加して、
直ちにその改行を削除するとか)、「別名で保存」で
元のファイル名をしてやるとかいうことですが。

# 少なくとも私は――必要に即して――上記の
# 手順で EOF を消しています。

15125 Re:K3ファイルの書き出し ( EOF 消去) hidetake 2002/02/16-23:17
記事番号15124へのコメント
>単にテキストファイルを開いてから、上書き保存
>すれば EOF が消える仕様(設定)になっている
>テキストエディターは多いと思いますけど。

と言う事は今時のテキストエディタで
K3 ファイルを弄ると、保存した段階で
K3 ファイルの仕様を逸脱すると言う事ですか?
(実際の副作用は別として)

私の使っているテキストエディタは
WZ Editor ですが、新規ファイルは EOF無しとなりますが、
既存のファイルを弄る場合は最初の状態のままになります。


15127 Re:K3ファイルの書き出し ( EOF 消去) Ogo 2002/02/17-01:01
記事番号15125へのコメント

>と言う事は今時のテキストエディタで
>K3 ファイルを弄ると、保存した段階で
>K3 ファイルの仕様を逸脱すると言う
>事ですか?(実際の副作用は別として)

一概に言えないのはもちろん、
まともなテキストエディターでは、設定による変更ができることが
一般的で、尚且つデフォルト設定が私の言ったような動作をするものが多いのではないかと
期待がされる(個人的願望?)というだけの話です。

ちなみに、私のデフォルトエディターの Dana や秀丸はそのような挙動を行なうと思いますが?

# 「メモ帳」なんかは検討の対象外。

ついでに、 K2-Editor では、 EOF が画面上に特殊なコードとして表示されていて、
これを削除しない限りは EOF も保存される仕様でした。


15129 Re:K3ファイルの書き出し ( EOF 消去) Ogo 2002/02/17-01:12
記事番号15127へのコメント

>と言う事は今時のテキストエディタで
>K3 ファイルを弄ると、保存した段階で
>K3 ファイルの仕様を逸脱すると言う
>事ですか?(実際の副作用は別として)

念のために言っておきますが、 EOF がない K3ファイルでも、
桐8 は何の問題もなく適切に処理できているようです。


15130 Re:K3ファイルの書き出し ( EOF 消去) hidetake 2002/02/17-01:47
記事番号15129へのコメント
>念のために言っておきますが、 EOF がない K3
>ファイルでも、 桐8 は何の問題もなく適切に
>処理できているようです。

これは
>(実際の副作用は別として)
と書いたとおりです。
でも、仕様は仕様として逸脱するのだったら
注意が必要なのかも知れません。

なお、桐のヘルプによれば
>K3 フォーマットファイルは EOF コードを出力しますが、
>CSV ファイルでは EOF コードを出力しません。
>通常、CSV ファイルを扱うアプリケーションは、EOF
>コードも1件のデータとして扱います。

なのですが、桐は EOF のついた CSV を読み込む場合
どういう処理を行うのか?

もし、ヘルプのような仕様でしたら、EOF を1行として
読み込むのが正しいと思います。
但し、桐の場合半角スペース(20)より小さい文字コードのデータを持てないので
EOF(1A) 自体は読み込めないので、空の1行が追加されるのが
本来の正しい動作のようですが、桐はどうなのか?

逆に CSV で桐のヘルプのように動作するアプリケーションがあり、
その CSV に EOF を意図的に付加し扱っている場合、
EOF を勝手に取り去るエディタは充分注意して扱わねば
思わぬデータの欠落を招くと言う事もあり得ます。

そう言う意味でも、最初からあるものを勝手に?
(実際は個人の設定なのだけれど)取り去るエディタは、その動作に
十分な注意が必要だと思うだけです。

もちろん、これが実際に影響する場面は
きわめて希なケースかも知れませんが・・・


15132 Re:K3ファイルの書き出し 4156 2002/02/18-09:34
記事番号15122へのコメント

>従って、本当に欲しいのは K3 ファイルなのか?
>CSV ファイルなのか? あるいは、K3 見たいな
>CSV ファイルなのか?
>
>それによって、書き出し方法を K3 を使うのか、
>CSV を使うのか、あるいは、K3 で書き出して 1A
>を後で削除するのか、それとも一括よりでも作り
>印字コマンドを使った書き出しルーチンを独自に
>作るとかの方法があると思います。
>
>
親切なお返事ありがとうございます。
私がやりたかったのは
K3ファイルみたいなCSVファイルを作成したかったのです。
そうするには、やはりバッチファイルが有効なのでしょうか?
15134 Re:K3ファイルの書き出し pokopon 2002/02/18-10:05
記事番号15132へのコメント
4156さん こんにちは

>私がやりたかったのは
>K3ファイルみたいなCSVファイルを作成したかったのです。

「K3みたいなCSV」 とは どういうファイルをイメージしていますか?

最後の「・」だけを削除したいのか、

文字列→""で囲む
数値→そのままのテキスト

として、拡張子はK3のままとするのか? それともCSVにするのか?

いずれにせよ、hidetakeさんから詳細な回答が出ています。

毎回、書き出す項目名が違うのなら、K3で書き出し、単純にバッチファイルなどを用いて
最後の「・」だけを削除する作業が簡単です。

決まった項目のみならば、一括処理の印字コマンドで「自由なフォーマット」で書き出すこともできます。

あるいは、一括処理で、ファイルを行単位で読み取り、最後の「・」だけをスキップするような
印字コマンド処理を作成すれば、汎用性が出てくるかとも思います。

ご希望なのは、どれでしょうか?




15135 Re:K3ファイルの書き出し 4156 2002/02/18-10:37
記事番号15134へのコメント
どうもありがとうございます。

K3ファイルで書き出さなければならないのは、レコードによって項目の属性が違うものがあるし、
項目数も違うのでK3で書き出してから、CSVに変換しています。
単純にバッチファイルで「・」を削除しようと思ったのですが、うまくいきませんでした。

「hidetake」さんの例文で出来なかったのですが、どうしてでしょうか?
皆様にはご迷惑をおかけしますが、宜しくお願いします。

15139 Re:K3ファイルの書き出し hidetake 2002/02/18-11:40
記事番号15135へのコメント
>単純にバッチファイルで「・」を削除しようと思ったのですが、うまくいきませんでし
>た。

copy /y org.k3 /a new.k3 /b
と実行して EOF は取れませんか?

15142 Re:K3ファイルの書き出し hidetake 2002/02/18-12:05
記事番号15139へのコメント
参考の為に教えて欲しいのですが、
EOF を敢えて削除する必要のある
相手側のソフトって何ですか?


15146 Re:K3ファイルの書き出し hidetake 2002/02/18-16:00
記事番号15135へのコメント
>私がやりたかったのは
>K3ファイルみたいなCSVファイルを作成したかったのです。

>K3ファイルで書き出さなければならないのは、レコードによって項目の属性が違うもの
>があるし、項目数も違うのでK3で書き出してから、CSVに変換しています。

EOF を取るのは別問題として考えられますが、
別に Ogo さんの言うとおりテキストエディタでも簡単です。
これぐらいの事でしたら、ノットパッドやワードパッドでも
簡単だと思います。

でも、最初の前提条件としての、
どういうファイルが欲しいのかが良くわかりませんねぇ〜

EOF の問題を先に出されたので、
こう言う回答になっているけど、欲しいファイルの形式を出されたら、
もっと別の回答や処理そのものの考えた方などが出されるかも?


戻る