過去の桐井戸端BBS (桐ver.9)
29428 文字データーの桁をそろえて文字を付加したい YSP 2005/03/19-13:56
初心者です。よろしくお願いします。

表編集で
半角カナ文字を入力する項目があります(16文字数以内に制限)。
この項目の文字データーが16桁に満たないときは16桁になるように半角空白で埋めたい。
そしてこの16桁前後に「”」を付加した文字データー(17桁)を表示する
項目を別に作りたいのですがうまくいきません。


"アイウエオ "
このような文字データー生成項目を作りたいのです
29429 Re:文字データーの桁をそろえて文字を付加したいのですが うにん 2005/03/19-14:21
記事番号29428へのコメント

>そしてこの16桁前後に「”」を付加した文字データー(17桁)

16桁の前後に"を付けたら18桁になりますが?

""""+[元の項目]+#複写(" ",16-#桁数([元の項目]))+""""
29431 Re:文字データーの桁をそろえて文字を付加したいのですが 今村 誠 2005/03/19-15:11
記事番号29428へのコメント
YSPさんこんにちは
http://www.shinkin.co.jp/obishin/webfb/fmt_zengin.htm
のようにカナ15桁+前後の”でそろえたいのなら
#計算(#代入(&STR,
#sstr(""""+#半角(#カナ(#trim([元の項目],3))),1,-16)+"""")
,#cond(#IS半角(&STR,1)=0,"全角文字が含まれています!!"
,1,&STR))
多遊さんのダウンロードコーナーに全銀フォーマットのサンプルがあります。


29432 うにんさん ありがとうございました。 YSP 2005/03/19-16:31
記事番号29429へのコメント
うにんさん
>
>>そしてこの16桁前後に「”」を付加した文字データー(17桁)
>
>16桁の前後に"を付けたら18桁になりますが?
>
>""""+[元の項目]+#複写(" ",16-#桁数([元の項目]))+""""


そうでした。18桁でした。
29434 テキストに書き出したら付加文字が""になってしまうんです。 YSP 2005/03/19-18:47
記事番号29429へのコメント
うにんさん

編集表上では
"1234567890123456" となっているんですが
テキストに書き出してみると
"""1234567890123456""" となってしまうんです。

テキスト書き出し後に
"1234567890123456" の形がほしいので
困っています。

知識がなくてすいません。
ご指導のほどよろしくお願いします。

29435 Re:テキストに書き出したら付加文字が""になってしまうんです。 宮城 2005/03/19-18:58
記事番号29434へのコメント
YSPさん、こんにちは。うにんさん、横からすみません。

答えはこんなところにあったりしませんか?

http://www.fuku3.com/habata/knowhow.htm


29437 Re:テキストに書き出したら付加文字が""になってしまうんです。 宮城 2005/03/19-19:23
記事番号29434へのコメント
ほかには、そもそも「"」を禁止して「”」を使わせる。

それがダメなら事前に「"」を「”」に置換し、事後戻す。

というか、テキスト書き出し後に「"""」を「"」に置換するってのが一番簡単。(普通のテキストエディタでできますよね。)
29439 私の知識不足です。 YSP 2005/03/19-20:13
記事番号29437へのコメント
宮城さん

>ほかには、そもそも「"」を禁止して「”」を使わせる。
>
>それがダメなら事前に「"」を「”」に置換し、事後戻す。
>
>というか、テキスト書き出し後に「"""」を「"」に置換するってのが
>一番簡単。(普通のテキストエディタでできますよね。)

POSレジのデーターをコンマ形式で呼び出し
桐で表編集して
コンマ形式に書き出して(テキストコンマ形式)
ふたたびPOSレジに戻すのです。
POSレジが " でくくった18桁しか飲んでくれないのです。

親切にご指導感謝です。


29440 項目値なのか、書き出し後の値なのか? 悲しげ 2005/03/19-20:27
記事番号29434へのコメント
どうも仰ることに矛盾があります。(^^;)

No.29428で wrote

>そしてこの16桁前後に「”」を付加した文字データー(17桁)
>を表示する項目を別に作りたいのです

この記述からは《項目値》としてこれを実現したいものと読みとれます。
とすれば、これは(半角空白を補いたいのが前なのか後なのかは不明ながら)
うにんさんがNo.29429でコメントした方法で可能な筈です。

しかるに、No.29434では

>テキスト書き出し後に"1234567890123456" の形がほしいので

とされています。(?_?)

で、改めてお伺いしますが、"1234567890123456" の形で取得したいのは
《項目値》としてなのか、《テキスト書き出し後》の方なのか、どっちでしょう?

後者については、宮城さんがNo.29437でコメントした方法の他に、
もっと簡単なやり方としては、書き出しを「テキスト」ではなく「K3フォーマット」を使う方法です。
この場合は、項目値を「"1234567890123456"」とはせずに、文字列型として
単に「1234567890123456」のままでK3書き出しをすれば、書き出された
K3フォーマットテキストは自動的に「"1234567890123456"」となる筈です。
(書き出されたファイルの拡張子は、後で任意にリネーム可)

もし「項目値も書き出し値も両方とも」との希望であれば、2項目用意することになるのでしょうか?


29441 名探偵コナンじゃなくて(^^;)、金田一少年 悲しげ 2005/03/19-20:39
記事番号29440へのコメント
No.29439を読んで謎は全てとけました。(^^)v

>POSレジのデーターをコンマ形式で呼び出し桐で表編集して
>コンマ形式に書き出して(テキストコンマ形式)ふたたびPOS
>レジに戻すのです。POSレジが " でくくった18桁しか飲んで
>くれないのです。

この類は、私自身、昔よくやりました。(^^;)
"*****"としたいのは、《項目値》としてではなく《テキスト書き出し後》の方ですね。
POSデータを、文字列として処理しているようですから、もし半角空白を
前に補うのであれば、書き出し用の項目の計算式は
  #右側文字列([元項目],-16)
でよいかもしれません。
これをそのまんまK3書き出しして、後で*.k3の拡張子を*.txtなりにリネームすればよろしいかと。

29443 二重引用符号の記述 佐田 守弘 2005/03/20-09:35
記事番号29428へのコメント
YSPさんは
既に多数の意見が出ていて、おそらく解決しているのかも知れませんが、
参考までに。

●二重引用符号の指揮中での記述
二重引用符号「"」は、文字列を括る機能の文字であるため、単純に
記述しても括りとして解釈されます。
@二重引用符号を文字列として扱うには2つ並べて「""」と記述する。
Aその前後を二重引用符で括る。
の記述をするため、結果として「""""」と記述します。
理屈は分っていても、結構間違えやすいのが本当の所です。

●「#JIS」関数を使うのが便利
二重引用符号は、#JIS(34)で表せます。まぎらわしくないのでこの記述を行った方が誤りが少ないかと思います。
質問の件で言えば、
 #JIS(34)+#部分列([項目]+#複写(" ",16),1,16)+#JIS(34)
と記述できます。

また二重引用符号を多用する一括処理では、予め文字列変数(たとえば&Q)
を宣言しておき、
 代入 &Q=#JIS(34)
と代入しておきます。この準備をしておけば、後は変数&Qと記述するだけで二重引用符の参照が行えます。

佐田守弘(KS-00119)

戻る