過去の桐井戸端BBS (桐ver.8)
14737 半角カンマがあるデータをテキスト変換すると、区切りのカンマと区別がつかずに項目がずれる ちえこ 2002/01/15-14:37
こんにちは。ちえこと申します。
データ入力で桐Ver8を使っています。
入力したデータをカンマ区切りのテキストファイルにして納品しているのですが、
データの内容に半角カンマが入っているものがあり、項目がずれてしまいました。

桐からテキストファイルに書き出す時、区切りの半角カンマとデータの中身のカンマを区別させる方法はありますか?
何か方法がありましたら、教えて頂きたいのですが。よろしくお願いします。

14741 Re:半角カンマがあるデータのテキスト変換 pokopon 2002/01/15-18:20
記事番号14737へのコメント
ちえこさん こんにちは

>入力したデータをカンマ区切りのテキストファイルにして納品しているの
>ですが、データの内容に半角カンマが入っているものがあり、項目がずれて
>しまいました。
>
>桐からテキストファイルに書き出す時、区切りの半角カンマとデータの中身の
>カンマを区別させる方法はありますか?

受け取る側のソフトはなんでしょうか? CSV形式で出すんでしょう?
例えば、
あ,い,う,a,b,c
とあったとき、「a,b,c」をひとつのデータとして書き出す際に、

あ,い,う,"a,b,c" or "あ","い","う","a,b,c"

となるように""ではさんではどうでしょうか?

これなら、桐だったら、きちんと「a,b,c」がひとつのデータとして読み込めますね。

文字列なら "" で囲めばどうでしょうか?

あるいは、データ区切りを「,」ではなく別のコード(TABなど)に指定し、
相手側がこの区切りコードで読み込みさせても良いかもしれません。

以上、お試しください。

14745 Re^2:半角カンマがあるデータのテキスト変換 ちえこ 2002/01/15-21:43
記事番号14741へのコメント
pokoponさん、こんにちは。レスありがとうございます。

>例えば、
>あ,い,う,a,b,c
>とあったとき、「a,b,c」をひとつのデータとして書き出す際に、
>
>あ,い,う,"a,b,c" or "あ","い","う","a,b,c"
>
>となるように""ではさんではどうでしょうか?

ACCESSとかだと、テキストに書き出す時に項目を""ではさむという設定ができるようですが、
桐表からテキストファイルに書き出しする時には、そのような設定がないように思うのですが
どうすれば""ではさんだ形で出力できるのでしょうか?

>あるいは、データ区切りを「,」ではなく別のコード(TABなど)に指定し、相手側が
>この区切りコードで読み込みさせても良いかもしれません。

それが出来ればいいのですが、「カンマ区切りのテキストで納品」と決まっているので変更が出来ないのです。
受け取り側のソフトは、多分ACCESSだと思います。

またアドバイスをよろしくお願いします。


14748 Re^2:半角カンマがあるデータのテキスト変換 幅田 2002/01/15-22:29
記事番号14745へのコメント
ちえこさん
こんにちは。


>ACCESSとかだと、テキストに書き出す時に項目を""ではさむという設定ができるようですが、
>桐表からテキストファイルに書き出しする時には、そのような設定がないように思うのですが
>どうすれば""ではさんだ形で出力できるのでしょうか?

桐から書き出すときに
ファイル→書き出し→テキスト で
区切りを,(カンマ)にすると、データの中に,(カンマ)があった場合
区切り文字と区別することはできません。

ファイル→書き出し→CSV だと
データの中に,(カンマ)があるときのみ、そのデータを""ではさみ
区切り文字と区別し、区切り文字は,(カンマ)で書き出します。

なお、
ファイル→書き出し→K3フォーマット を使えば
データの内容にかかわらず、文字列であれば、""ではさみ、
区切り文字を,(カンマ)で書き出します。

私なら通常、受け取り側のソフトがCSVと指定していても
あえてK3フォーマットで書き出して、拡張子をK3からCSVに変更しています。

そのほうがうまくいく場合が多いですから。

14749 Re^2:半角カンマがあるデータのテキスト変換 pokopon 2002/01/15-23:14
記事番号14748へのコメント
>ファイル→書き出し→CSV だと
>データの中に,(カンマ)があるときのみ、そのデータを""ではさみ
>区切り文字と区別し、区切り文字は,(カンマ)で書き出します。

で十分対応が可能かと思います。

私の場合も幅田さんと同様に、一旦K3形式に書き出して、CSVにリネームすると思います。
文字データの場合には""で囲むのが基本だと思いますので。

あえて、テキスト書き出しにこだわるなら、
""で囲みたいデータ(勿論文字列型)のある項目で
"""" + [] + """" と置換し、事前に""で囲っておいてからテキスト書き出し
(この設定をしない項目は「裸」のまま)という方法もあるかと思います。

どれでも同様の結果が得られますが、最初の方法でアクセス大先生には「叱られない」と思います。


14754 Re^2:半角カンマがあるデータのテキスト変換 ちえこ 2002/01/16-13:52
記事番号14749へのコメント
pokoponさん、幅田さん、アドバイスありがとうございます。

>>ファイル→書き出し→CSV だと
>>データの中に,(カンマ)があるときのみ、そのデータを""ではさみ
>>区切り文字と区別し、区切り文字は,(カンマ)で書き出します。

CSVだとそうやって書き出してくれるんですね。
知りませんでした。

>私の場合も幅田さんと同様に、一旦K3形式に書き出して、CSVにリネームすると思います。
>文字データの場合には""で囲むのが基本だと思いますので。

なるほど、リネームすればいいんですね。やってみます。

>あえて、テキスト書き出しにこだわるなら、
>""で囲みたいデータ(勿論文字列型)のある項目で
>"""" + [] + """" と置換し、事前に""で囲っておいてからテキスト書き出し(この設定をしない項目は「裸」のま
>ま)という方法もあるかと思います。
>

置換しようかなとちょっと考えましたが、多分、最初の方法でいけそうです。
アクセス先生にしかられないように、やってみます。ありがとうございました!

戻る