初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2014-02-24 12:41:37

cybe
Member

バイト数でcsv書き出しをしたい

win7,ファイルメーカー8

全角文字、半角カタカナが混ざった「商品名」というフィールドがあります。
この商品名を左から36バイト分に区切ってcsv書き出しをしたいのですが
どのようにすればいいでしょうか。

Offline

#2 2014-02-25 10:31:11

cybe
Member

Re: バイト数でcsv書き出しをしたい

取り込み先のシステムが36桁以上あると、エラーではじかれる仕組みになっていて
ファイルメーカー側で書き出す際に36バイトにして出力する必要があります。
なるべく多くの文字数を取り込みたいので、カタカナ英字は半角にしてあります。

例えば「あいうえお」という文字から9バイト抽出した場合、最後の「お」が文字化けしてしまうので
そこを何とかしたいのですが、やはり全角半角混在していると難しいですかね。。。

Offline

#3 2014-02-25 10:44:39

チポ
Member

Re: バイト数でcsv書き出しをしたい

「あいうえお」という文字から9バイト抽出した場合、最後の「お」が文字化けしてしまう

どのように取り出しているのか分りませんが、
このような場合は8バイトで区切ってはダメなのですか?

Offline

#4 2014-02-25 12:30:38

cybe
Member

Re: バイト数でcsv書き出しをしたい

あ、スイマセン。そもそもまだ36桁以上はまだ取り出せてませんでした…
文字化けの件はシステム側の担当者に言われたんですが、

Case ( Length ( 商品名 & Filter ( 商品名 ; RomanHankaku ( KanaHankaku ( 商品名 ) )))   ≤  36 ; 商品名 )
で36バイト以内の商品名だけ取り出せてます。

今のところ、全角が(36バイト37バイト目に)きた場合表示されていないので
36バイト以内の商品名はこのまま書き出せば大丈夫そうですが
36バイト以上の商品名を、36バイトで区切って取り出す方法が分からないです。

Offline

#5 2014-02-25 13:10:30

チポ
Member

Re: バイト数でcsv書き出しをしたい

全角が(36バイト37バイト目に)きた場合

この場合は35バイトで区切る
とすれば、

左から一文字ずつバイト数を数えてゆき、
37バイト以上になった時点の文字数から-1した文字数を取り出せばいいですよね。

これをスクリプトにすればいいですが、、

再帰式の計算フィールドでもできそうですが、私は苦手。。

Offline

#6 2014-02-25 13:15:38

cybe
Member

Re: バイト数でcsv書き出しをしたい

なるほど。ありがとうございます。
ちょっと調べてやってみます。

Offline

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.007 seconds, 7 queries executed - Memory usage: 573.13 KiB (Peak: 602.89 KiB) ]