みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
お世話になります。
アドバイスいただけたら幸いです。
『12345002023/03/10005000工場A』これがデーターの一つの塊で、このような様式で
データーがあり、複数あるときは、(□はスペースです)
一つのテキストファイルに
12345002023/03/10005000工場A□□□□□□67890002023/0310002500工場B
・・・・・と続きます。
このデーターを読み込み、
テーブル名:データー
レコードIDフィールド 管理IDフィールド 日付フィールド 数値フィールド 所属フィールド
1 12345 2023/03/10 5000 工場A
2 67890 2023/03/10 2500 工場B
上記のような感じで、
一つのテキストファイルから、一つのデーターの塊を一つのレコードとして作成することができるのでしょうか?
よろしくお願いいたします。
データの区切りのスペースが必ず入るのでしたら、
Let (
[
txt = データ ;
s = 1 ;
e = 5 ;
txt = Substitute ( txt ;[ “ “ ; Char(1) & Char(2) ];[ Char(2) & Char(1) ; “” ];[ Char(1) & Char(2) ; ¶ ]) ;
txt = GetValue ( txt ; Get ( レコード番号 ) )
] ;
Middle ( txt ; s ; e )
)
この式を、管理IDフィールド の自動入力の計算式に設定しておきます。
日付フィールド では、
s = 8 ;
e = 17 ;
数値フィールド では
s = 18 ;
e = 23 ;
所属フィールド では
s = 24 ;
e = 33 ;
に設定し、全レコードを対象外にした上で、必要なだけ新規レコードを作ります。
または、同じような事をスクリプトで行ってもいいでしょう。
Last edited by Shin (2023-03-11 14:04:31)
Offline
管理IDの後ろ、と数値の前、に00が入ってるのが気になります。数値の桁数が違う場合はどうなのか?実は0でなくスペース?
行区切りのない固定長データのような気がしますが...
Shinさま、
アドバイスありがとうございます。
現時点では、内容はさっぱり理解できておりませんが、
filemakerでできるということは、理解できました。
アドバイスをもとに、勉強していきます。
ありがとうございます。
固定長データだと、漢字が混じるのが面倒ですね。
Offline
himadaneeさま、
その00は00です。
これは、管理IDですが、実際に管理IDフィールドに取り込んでも管理IDフィールドでの計算で消すことができると思いましたので、書き込んではいません。
生データは『12345002023/03/10005000工場A』です。
桁数が変わるかもしれない箇所は工場Aの前の005000です。あと、工場Aの部分です。
1234500の文字数は変わらず、2023/03/10の文字数も変わりません。
「行区切りのない固定長データ」と仰っておられますが、その意味すらわからないスキルです。
Shinさま、
固定長データだと、漢字が混じるのが面倒ですね。
とのことですが、よくわかりません。スキルがありません、
漢字が混ざって難しいのであれば、
管理IDでリレーションして所属フィールドを引っ張ってくればいいかと考えてます。
だとすれば、
レコードID、管理ID、日付、数値フィールドを抜き出せば
いいのではと今思いました。
元データが、JISでのバイト長の固定の可能性があります。
FMはUnicodeを使っているので、バイト長という概念がありません。テキストの長さをみるときに、例えば、 aあ は2文字ですのでFMは2と判断しますが、JISでは3バイトと数えます。(あ が2バイト文字、文字によっては、1文字4バイトのものもあります)ですから、一旦JISへ変換して、そこで切り分けて、戻してくる必要があります。今回は、最後の工場名だけのようですので、比較的楽ですが。
Offline
Shinさま、
データーは
Unicode UTF-8 です。
そこのところの違いなどもさっぱり知識はありません。
元データの話ではなくて、FM内部の話です。インポート(データフィールドに格納)した時点で、コードが変換されています。
Offline
最後の所属フィールド以外は固定長で問題なさそうなので、「データの区切りのスペースが必ず入る」かどうか、だけ気にすればいいのかな。
スペースが1個じゃないので、そこも固定長の感じですが、たまたまデータが長くてスペースが入らない場合があるのかどうか、その場合には区切り位置の判定が多少面倒になります。
元データの生成ソフトや、そのデータ仕様が公開されてますか?
Shinさま、
元データの話ではなくて、FM内部の話です。インポート(データフィールドに格納)した時点で、コードが変換されています。
理解しました。
himadaneeさま、
元データの生成ソフトや、そのデータ仕様が公開されてますか?
生成ソフトはわかりません、データーの仕様もわかりませんが、
LPWAで取得し、おそらくデコードされたデータではないかと思います。
Pages: 1
[ Generated in 0.007 seconds, 9 queries executed - Memory usage: 568.13 KiB (Peak: 584.67 KiB) ]