過去の桐井戸端BBS (桐ver.9)
28105 一括処理でCSVファイルから読み込んだ項目名を修正したい toshi-chan 2004/11/03-17:47
職場で某電機メーカー製の在庫管理システム(オフコン)を使用しています。
このシステムからは、基本マスターや入出庫状況のパソコン用ファイルを作成することができます。
私はこのファイルと桐9−2004を利用して各種の統計資料等を作成していました。
みんなが簡単に使えるように一括処理システムも組みました。

さて、この在庫管理システムが更新されました。
パソコン用のファイルは作成できるのですが、困ったことに項目名が全く同じではないのです。
例えば、入出庫状況ファイルはcsvで作成されるのですが、従来は項目名が
     出庫数9月
となっていたものが、新システムでは
     出庫数_9月________
のように作成されてしまいます。(アンダーバーは半角スペースを示しています。)
桐の一括処理では項目名も記述していますので、このままでは動作しなくなってしまいました。

新しい入出庫用のcsvファイルを桐に変換し、再定義で開いてみました。
TRIM関数で項目名を置換できないものかと思ったわけですができないようですね。
仕方がないので、一括処理に記述した項目名をひとつひとつ修正して対応し、現在では稼働しています。

このような事例に対応する方法として、何か名案・迷案はあるでしょうか。

28107 Re:項目名に対して文字列操作 うにん 2004/11/03-20:25
記事番号28105へのコメント

>新しい入出庫用のcsvファイルを桐に変換し、再定義で開いてみました。TRI
>M関数で項目名を置換できないものかと思ったわけですができないようですね。

項目属性変更コマンドでできると思います。
1項目ずつになりますが、どっちみち一括処理なので繰り返しコマンドで
全項目処理すれば問題ないでしょう。

28108 Re:項目名に対して文字列操作 宮城 2004/11/03-23:45
記事番号28105へのコメント
toshi-chanさん、こんにちは。

csvからの読み込みで項目名が問題になるってことは、1件目を項目名として読んでいる?

だとしたら、ばちっと項目名まで定義した表に読み込めばいいのでは。

# 蛇足ながら、「何月」っていうのを項目名に持ち込むのはちょっと
# 賛成できません。それは「表名」の方に押し付けたほうがなにかと
# 便利かと。[出庫数n月]がずらっと横に並ぶ表なら話は別ですが。

28109 Re:項目名に対して文字列操作 宮城 2004/11/04-00:00
記事番号28108へのコメント
こんなの書くと性格を疑われるかもしれませんが、古典的システム屋なら新システムに噛み付きます。
「従来どおりのアウトプットを保証しろ!」

実際、たいした手間とは思われぬというか、新システム側の手抜きとしか思えません。
一事が万事。こんなのすべて受け側で対応してたら身が持ちませんよということもあったりしますので。


28111 Re:項目名に対して文字列操作 うにん 2004/11/04-09:53
記事番号28109へのコメント
>実際、たいした手間とは思われぬというか、新システム側の手抜きと
>しか思えません。一事が万事。こんなのすべて受け側で対応してたら
>身が持ちませんよということもあったりしますので。

すごく同意。

28118 Re:項目名に対して文字列操作 ONnoji 2004/11/04-14:56
記事番号28109へのコメント
宮城さん
>実際、たいした手間とは思われぬというか、新システム側の手抜きと
>しか思えません。

単純に、エクセルで開いた時に見栄え良くするように変更したのかもしれませんね。

エンドユーザがそういう要求をしたのか?
開発側が余計な気を使ったのか?
結局、作った人に聞いてみないと分からないでしょうけれど。(^^ゞ

ところで、「読み込みCSV」条件名や「読み込み CSV」コマンドで、
項目名行を読み込まない指定をする方法も考えられますね。



28137 Re:項目名に対して文字列操作 toshi-chan 2004/11/08-19:35
記事番号28105へのコメント
みなさん、こんばんは。

久々に「項目属性変更2」コマンド、「項目名変更」コマンドを調べてみました。
どちらのコマンドも、変更後の項目名には文字列式を指定するようです。
計算式を指定できれば、このアイデアがgoodだったんですけどね。

現実的な方法としては、やはり桐の表の枠組みを作っておいて、そこにcsvファイルの
2行目以降を読み込むことかなという気がしています。もともと基本マスターの方では、
csvの丸ごとの変換では不都合が多々ありましたので、この手法をとっておりました。

また何年か経つと新システムに更新されると思いますので、メーカーさんには中身をいじくらないように
釘を刺しておこうと思います。
みなさん、ありがとうございました。
28138 Re:項目名に対して文字列操作 うにん 2004/11/08-20:17
記事番号28137へのコメント

>久々に「項目属性変更2」コマンド、「項目名変更」コマンドを調べてみました。どちら
>のコマンドも、変更後の項目名には文字列式を指定するようです。計算式を指定できれ
>ば、このアイデアがgoodだったんですけどね。

「コマンド」を使えばできますよ。最初の項目の"_"を消したければ
コマンド "項目属性変更 変更, 1{"""+#文字置換(#項目属性(1,1),"_","")+"""}"
とか。
ただし項目名が重複しないことを確認してからやらないといけませんね。

28139 Re:項目名に対して文字列操作 toshi-chan 2004/11/08-22:08
記事番号28138へのコメント
そっ、そ〜でした、うにんさん。

最近は一括処理を書く機会がほとんどなかったのですっかり忘れていました。
以前「コマンド」コマンドを初めて使ったとき、その機能のすごさに感動したのを思い出しました。どうもありがとう。(*^_^*)

戻る