このページの概要:
・局所変数を変数管理で定義すること。
・[名札 メイン]で局所変数を宣言すること。
・[名札 メイン]の範囲のこと。
初心者講座 第2弾 第2章 - 藤野 2002年12月04日 20時15分
Re:初心者講座 第2弾 第2章 - ONnoji 2002年12月05日 12時15分
Re:初心者講座 第2弾 第2章 - 藤野 2002年12月07日 11時30分
局所変数はどこで宣言しますか? - ONnoji 2002年12月07日 13時25分
局所変数を二重宣言するワケ - ONnoji 2002年12月07日 13時59分
オブジェクトの属性で使わない変数ならば… - ONnoji 2002年12月07日 14時36分
再度、書き直してみました - 藤野 2002年12月09日 20時22分
表を開く時に表番号を指定しないのは進歩です - ONnoji 2002年12月10日 10時34分
Re:表を開く時に表番号を指定しないのは進歩です - 藤野 2002年12月11日 21時49分
投稿者:藤野 - 投稿日時:2002年12月04日 20時15分
ONnojiさん今晩は
初心者講座 第2章です
ここで使用する表は担当者台帳、担当者所属部署、得意先台帳です
読み込むテキストファイルは.Tandai、Tok2bun、Tokdaです。
名前が色々面倒なので
表は &ファイル名1=担当者台帳、&ファイル名2=担当者所属部署
&ファイル名3=得意先台帳
テキストファイルは
&txt1=Tandai、&txt2=Tok2bun、&txt3=Tokda
とすることにしました。
処理の流れを考えてみます。
第1の方法
1. 表を開く &ファイル名1
2. ファイルにある行を全削除する
3. &txt1を読み込む
4.表を保存する
5.&txt1を削除する
6. 表を開く &ファイル名2
7. ファイルにある行を全削除する
8. &txt2を読み込む
9.表を保存する
10.&txt2を削除する
11. 表を開く &ファイル名3
12. ファイルにある行を全削除する
13. &txt3を読み込む
14.表を保存する
15.&txt3を削除する
第2の方法
1. 表を開く &ファイル名1,&ファイル名2,&ファイル名3
2.編集表 &ファイル名1
3.ファイルにある行を全削除する
3. &txt1を読み込む
4.編集表を閉じる
5.&txt1を削除する
6.編集表 &ファイル名2
7.ファイルにある行を全削除する
8. &txt2を読み込む
9.編集表を閉じる
10.&txt2を削除する
11、編集表 &ファイル3
12.ファイルにある行を全削除する
14. &txt3を読み込む
15.編集表を閉じる
16.&txt3を削除する
こんな感じでいいのでしょうか?このtxtの読込は年度内1回
しか、行いません。
投稿者:ONnoji - 投稿日時:2002年12月05日 12時15分
藤野さん、こんにちは。
>ここで使用する表は担当者台帳、担当者所属部署、得意先台帳です
>読み込むテキストファイルは.Tandai、Tok2bun、Tokdaです。
>名前が色々面倒なので
>表は &ファイル名1=担当者台帳、&ファイル名2=担当者所属部署
> &ファイル名3=得意先台帳
>テキストファイルは
> &txt1=Tandai、&txt2=Tok2bun、&txt3=Tokda
>とすることにしました。
これは擬似コードですか?
老婆心ながら…
もしも、本当の代入コマンドのつもりなら、(外していたらゴメンナサイ)
&ファイル名1 = "担当者台帳",&ファイル名2
= "担当者所属部署"
&ファイル名3 = "得意先台帳"
&txt1 = "Tandai",&txt2
= "Tok2bun",&txt3 = "Tokda"
としましょうね。
どうも文字列の前後の二重引用符( " )を省略する人が多くて…
基本は文字列の前後には二重引用符( "
)を付けるです。
省略出来る場合もあるけれど…
エラーを誘発する可能性があるので、省略しない方がいいです。
しかし、そこまで神経質にならなくてもいいのではと思う人もいるでしょうね。
なぜ ONnoji は神経質なのか?
ONnoji は神経質でも潔癖症でもありません。
むしろ、ぐうたらで不潔です…ハハハ本気で信じないでね(^^ゞ。
「文字列の前後には二重引用符( " )を付けましょう!」と口を酸っぱくしていう理由は、
藤野さんが悪い癖を覚えて、スジの悪いプログラムを作って欲しくないからです。
楽器の演奏家にもいるでしょう〜…スジの悪い人。
スジが悪いと上達にも限界があります。
基本に忠実ならば、努力次第で名演奏家にもなれるでしょう。
基本が出来ているから、基本を逸脱した演奏も可能になるのです。
私には、基本もろくに出来ていないのに、ウケ狙いで逸脱した演奏をする演奏家はスジが悪いと思いますね。
ジャズの演奏家でも…名プレーヤーは基本がしっかり出来ていることが多いでしょう。
弓道だって柔道だって…みんな基本が大切でしょう。
>処理の流れを考えてみます。
>第1の方法
>1. 表を開く &ファイル名1
>2. ファイルにある行を全削除する
>3. &txt1を読み込む
>4.表を保存する
>5.&txt1を削除する
>
>6. 表を開く &ファイル名2
>7. ファイルにある行を全削除する
>8. &txt2を読み込む
>9.表を保存する
>10.&txt2を削除する
>
>11. 表を開く &ファイル名3
>12. ファイルにある行を全削除する
>13. &txt3を読み込む
>14.表を保存する
>15.&txt3を削除する
>
>第2の方法
>1. 表を開く &ファイル名1,&ファイル名2,&ファイル名3
>
>2.編集表 &ファイル名1
>3.ファイルにある行を全削除する
>3. &txt1を読み込む
>4.編集表を閉じる
>5.&txt1を削除する
>
>6.編集表 &ファイル名2
>7.ファイルにある行を全削除する
>8. &txt2を読み込む
>9.編集表を閉じる
>10.&txt2を削除する
>
>11.編集表 &ファイル3
>12.ファイルにある行を全削除する
>14. &txt3を読み込む
>15.編集表を閉じる
>16.&txt3を削除する
どちらでも、OKですね。
要するに表( .tbl )にテキストファイルのデータが読み込めればいいのですから。
>こんな感じでいいのでしょうか?このtxtの読込は年度内1回
>しか、行いません。
一年に一回なら、なおさらそんなに気を使う必要はないと思います。
こういうところは気楽に行きましょう。
さあ、次へ進みましょう!
投稿者:藤野 - 投稿日時:2002年12月07日 11時30分
おはようございます。
プログラムとりあえず下記のようになりました。
質問事項
変数宣言 固有,文字列{&ファイル名1,&ファイル名2,&ファイル名3}
変数宣言 固有,文字列{&txt1,&txt2,&txt3}
固有のところを初め局所にしたら桐にしかられましたが?
どうしてでしょうか?
また、変数宣言は手続きの中でその都度するのですか、それともメインの下に
すぐ、記述するのでしょうか?
よろしくお願いします。
手続き定義開始 cmd台帳読込click()
変数宣言 固有,文字列{&ファイル名1,&ファイル名2,&ファイル名3}
変数宣言 固有,文字列{&txt1,&txt2,&txt3}
&ファイル名1="担当者台帳",&ファイル名2="担当者所属部署",&ファイル名3=得意先台帳
&txt1="Tandai.txt”,&txt2="Tok2bun.txt”,&txt3="Tokda.txt"
表 &ファイル名1
行削除 *
表整理 余白割合=10
読み込み条件登録 テキスト,条件名="Tandai読込",&txt1,区切り="09",
空白削除=両方,項目名=する,ファイル名変更=しない,{[担当者コード],[担当者名], [担当者フリガナ],[部門]}
読み込み テキスト,条件名="Tandai読込"
ファイル削除 &txt1
終了 表 編集対象表
表 &ファイル名2
行削除 *
表整理 余白割合=10
読み込み条件登録 テキスト,条件名="Tok2読込",&txt2,区切り="09",空白削除=両方,項目名=する,ファイル名変更=しない,{[部門コード],[部門名],[部門略]}
読み込み テキスト,条件名="Tok2読込"
ファイル削除 &txt2
終了 表 編集対象表
表 &ファイル名3
行削除 *
表整理 余白割合=10
読み込み条件登録 テキスト,条件名="Tokdai読込","Tokdai.txt",区切り="09",空白削除=両方,項目名=する,ファイル名変更=しない,{[得意先コード],[得意先名称],[得意先フリガナ],[得意先略称],[郵便番号],[住所1],[住所2],[部署名],[役職名],[ご担当],[敬称],[TEL],[FAX],[分類1],[分類2],[企業コード],[売上伝票],[請求書],[DM発行],[取引区分],[単価種類],[掛率],[請求書コード],[締グループ],[税稼動],[回収方法],[回収サイクル],[回収日],[手数料負担区分],[手形サイト],[与信限度額],[税端数処理],[担当者コード],[メモ],[メールアドレス],[ホームページ]}
読み込み テキスト,条件名="Tokdai読込"
ファイル削除 &txt3
終了 表 編集対象表
手続き定義終了
投稿者:ONnoji - 投稿日時:2002年12月07日 13時25分
藤野さん、こんにちは。
> おはようございます。
> プログラムとりあえず下記のようになりました。
> 質問事項
> 変数宣言 固有,文字列{&ファイル名1,&ファイル名2,&ファイル名3}
> 変数宣言 固有,文字列{&txt1,&txt2,&txt3}
>
> 固有のところを初め局所にしたら桐にしかられましたが?
> どうしてでしょうか?
> また、変数宣言は手続きの中でその都度するのですか、それともメインの下に
> すぐ、記述するのでしょうか?
> よろしくお願いします。
そうですよ。
<フォームアプリケーション入門>の「§1
三角形の面積を求める」をもう一度ご覧ください。(-_-メ)
http://www.geocities.co.jp/SiliconValley-Bay/7565/guide01.htm#kev
>>[まとめ : 名札 メイン]
>>イベント処理(.kev)の先頭行には
"名札メイン" が絶対に必要です。
>>"名札 メイン" は必ず実行されます。
>>"名札 メイン" の主な用途は局所変数を宣言することです。
なお、"名札 メイン"は局所変数を宣言すること以外にも使い道がありますが、
§1の説明は最初の一歩なのでこのように説明をしています。
くれぐれも誤解のないようにしてください。
なお、自明のことですがフォームの変数管理でも局所変数を宣言することもできます。
オブジェクトで使う局所変数…
たとえばテキストボックスのソースに指定する局所変数はフォームの変数管理でも登録するといいですよ。
※イベントとの二重宣言になりますが、イベント側で初期化してしまいますので問題はありません。
そうしないと、フォーム定義の最中に変数がない!というメッセージが表示されて面倒です。
>手続き定義開始 cmd台帳読込click()
> 変数宣言 固有,文字列{&ファイル名1,&ファイル名2,&ファイル名3}
> 変数宣言 固有,文字列{&txt1,&txt2,&txt3}
> &ファイル名1="担当者台帳",&ファイル名2="担当者所属部署",&ファイル名3=得意先台帳
> &txt1="Tandai.txt”,&txt2="Tok2bun.txt”,&txt3="Tokda.txt"
>
> 表 &ファイル名1
> 行削除 *
> 表整理 余白割合=10
> 読み込み条件登録 テキスト,条件名="Tandai読込",&txt1,区切り="09",
> 空白削除=両方,項目名=する,ファイル名変更=しない,{[担当者コード],[担当者名], [担当者フリガナ],[部門]}
> 読み込み テキスト,条件名="Tandai読込"
> ファイル削除 &txt1
> 終了 表 編集対象表
>
> 表 &ファイル名2
> 行削除 *
> 表整理 余白割合=10
> 読み込み条件登録 テキスト,条件名="Tok2読込",&txt2,区切り="09",空白削除=両方,項目名=する,ファイル名変更=しない,{[部門コード],[部門名],[部門略]}
> 読み込み テキスト,条件名="Tok2読込"
> ファイル削除 &txt2
> 終了 表 編集対象表
>
> 表 &ファイル名3
> 行削除 *
> 表整理 余白割合=10
> 読み込み条件登録 テキスト,条件名="Tokdai読込","Tokdai.txt",区切り="09",空白削除=両方,項目名=する,ファイル名変更=しない,{[得意先コード],[得意先名称],[得意先フリガナ],[得意先略称],[郵便番号],[住所1],[住所2],[部署名],[役職名],[ご担当],[敬称],[TEL],[FAX],[分類1],[分類2],[企業コード],[売上伝票],[請求書],[DM発行],[取引区分],[単価種類],[掛率],[請求書コード],[締グループ],[税稼動],[回収方法],[回収サイクル],[回収日],[手数料負担区分],[手形サイト],[与信限度額],[税端数処理],[担当者コード],[メモ],[メールアドレス],[ホームページ]}
> 読み込み テキスト,条件名="Tokdai読込"
> ファイル削除 &txt3
> 終了 表 編集対象表
>手続き定義終了
変数は[名札 メイン]で局所変数を宣言してくださいね。
変数宣言の部分を除き、それ以外はOKですね。
ところで、[名札 メイン]はどのように書いてあるのですか???
イベントではKEVを実行する時に[名札 メイン]が最初に実行されるのですが…????
※次回投稿からお願いしますが、[名札 メイン]にな〜んにも書いていないとしても省略しないでくださいね。
そうそう、[名札 メイン]の範囲が判り難いですね。
[名札 メイン]の範囲は[名札 メイン]から最初のイベントハンドラまたは一般手続きの直前までです。
ですから、[名札 メイン]の最後のつもりのアスタリスク(*)記号は書いてなくても構いません。
なお、[名札 メイン]の範囲は最低でも3行ほど必要です。
<追伸>
なお、DOS桐には局所変数はありません。
したがって、固有変数を使用するわけですが…
DOS桐の一括処理( .cmd )では、名札...手続き終了の範囲で固有変数を変数宣言をする場合があります。
しかし、これは変数の数がやたらに多くて変数をクリアするのがとっても面倒な場合に使う方法です。
イベントでは手続き定義開始...手続き定義終了で局所変数を宣言することはできません。
もちろん、局所変数を再宣言することもできません。
したがって局所変数はフォームの部品のひとつのように考えるといいと思います。
投稿者:ONnoji - 投稿日時:2002年12月07日 13時59分
藤野さん、こんにちは。
少し説明を付け足しますね。
【フォーム定義の変数管理で局所変数を宣言する】
http://www.geocities.co.jp/SiliconValley-Bay/7565/guide01.htm#wfm
>14.[ツール]メニュー → [変数管理]を選び、[変数管理]ウィンドウの[局所]タブの[新規作成]ボタンをクリックして局所変数を三個登録します。
>
>変数名 種別 データ型 変数の値
>mTEIHEN 局所 数値 999999
>mTAKASA 局所 数値 999999
>mMENSEKI 局所 数値 999999
【局所変数を二重宣言するワケ】
http://www.geocities.co.jp/SiliconValley-Bay/7565/guide01.htm#kev
>変数宣言 局所,数値{ &mTEIHEN ,&mTAKASA
,&mMENSEKI }
>もうお気づきかもしれません。これらの局所変数はTRIANGLE.wfmを作成した際に登録済みでした。
>
>あえて同じ局所変数を宣言するのは次の理由からです。
>
>a.フォーム定義の変数管理で局所変数を登録したのはテキストボックスに表示される文字の大きさ等がフォーム定義画面上で確かめられて好都合だからです。
>
>b.“名札 メイン” の直後に局所変数を宣言するのはイベント処理(.kev)の中で使う局所変数を明示して内容を理解しやすくするためです。
>
>イベント処理(.kev)も一種のプログラミングですから、どのような変数が用いられているのかを冒頭で明確にすることが大切です。
【変数の上書き】
>10.フォーム編集の状態になりましたが、前回と今回でどこが変化したか気がつきましたか。テキストボックスの値が
999999 ではなく 空欄 になっていることに注目してください。こうなった理由は次のことによります。
>
>フォーム定義の変数管理で登録した変数と今回
“名札 メイン” で宣言した変数は、同じ名前で同じデータ型で同じ種類です。
>このような場合には最初にフォーム定義の変数管理で登録した変数が作成されますが、
>次に “名札 メイン” が実行されて変数宣言コマンドによって作成済みの変数が上書きされたのです。
【同範囲・同名変数の注意】
フォーム定義の変数管理と[名札 メイン]の両方で同名の局所変数を場合には、
変数のデータ型を同じにしないとエラーになります。
(例)
イベントハンドラ実行中にエラーが発生しました
KU1151:変数名はすでに定義されています
詳細: &mTest
ファイル名: ドライブ:\パス¥ファイル名.kev
なお、データ型が同じでも配列の要素数が異なっている場合にもエラーになります。
エラーメッセージは上の例と同じです。
エラーした場合には、[名札 メイン]側の負けです。(^^ゞ
【参考】
次順序での処理が実行されます。
1 フォーム定義画面の変数管理で定義した局所変数の宣言
2 メイン処理
3 サブフォームのメイン処理
4 編集対象表のオープン
5 フォームの[オブジェクトの属性]→[編集対象表]タブ→[表の操作]の設定
<追伸>
どれも、§1からの引用です。
もういちど、さらっと読みなおしてみてください。
投稿者:ONnoji - 投稿日時:2002年12月07日 14時36分
藤野さん、こんにちは。
【局所変数を二重宣言しなくてもいいワケ】
フォーム定義の時に…
たとえば、テキストボックスのソースに未定義の変数を指定した場合には
次のようなメッセージが表示されます。
txtObj::ソース:<<解析できません>>KU1150:未定義の変数名があります
「ソース」 <<解析できません>>
KU1150:未定義の変数名があります
これ時々見かけませんでしたか?
これは[名札 メイン]に変数宣言コマンドを書いたところで、イベントが実行されなければ、変数は未定義のままだからです。
しかし、このメッセージが表示されない場合もあります。
それは、無理矢理フォーム編集へ行きイベントを実行したあとで、
フォームを閉じずにフォームを再定義したときです。
この場合すでに変数は定義されていますから、メッセージは表示されません。
というわけで、二重宣言するのはオブジェクトの属性に変数を指定する場合です。
しかし、今回の藤野さんの変数は…
&ファイル名1,&ファイル名2,&ファイル名3
&txt1,&txt2,&txt3
&ファイル名1,&ファイル名2",&ファイル名3=得意先台帳
これらは、オブジェクトの属性で使いませんね。こういう場合には二重宣言する必要はありません。
投稿者:藤野 - 投稿日時:2002年12月09日 20時22分
ONnojiさん今晩は、
何を勘違いしたのか、変数宣言をメインの下に書かず、手続きの初めに書いてしまいました、
もう一度イベント道場の1回目を読み直し、フォームに局所変数で登録更にメインの下に変数宣言局所mを追加して書き直しました。
一部訂正個所もありましたが、実験の結果うまく動きます。メインの下はすぐ変数宣言次に手続き開始と覚えればいのですね。
ともあれ、下記のように完成しましたが、これでいいですか?
名札 メイン
*変数を宣言
変数宣言 局所,文字列{&mファイル名1,&mファイル名2,&mファイル名3}
変数宣言 局所,文字列{&mtxt1,&mtxt2,&mtxt3}
手続き定義開始 cmd台帳読込click()
&mファイル名1="担当者台帳",&mファイル名2="担当者所属部署",&mファイル名3=得意先台帳
&mtxt1="Tandai.txt”,&mtxt2="Tok2bun.txt”,&mtxt3="Tokdai.txt"
*担当者台帳の読込
表 &mファイル名1
行削除 *
表整理 余白割合=10
読み込み条件登録 テキスト,条件名="Tandai読込",&mtxt1,区切り="09",空白削除=両方,項目名=する,ファイル名変更=しない,{[担当者コード],[担当者名],[担当者フリガナ],[部門]}
読み込み テキスト,条件名="Tandai読込"
ファイル削除 &mtxt1
終了 表 編集対象表
*担当者所属部署の読込
表 &mファイル名2
行削除 *
表整理 余白割合=10
読み込み条件登録 テキスト,条件名="Tok2読込",&mtxt2,区切り="09",空白削除=両方,項目名=する,ファイル名変更=しない,{[部門コード],[部門名],[部門略]}
読み込み テキスト,条件名="Tok2読込"
ファイル削除 &mtxt2
終了 表 編集対象表
*得意先台帳の読込
表 &mファイル名3
行削除 *
表整理 余白割合=10
読み込み条件登録 テキスト,条件名="Tokdai読込",&mtxt3,区切り="09",空白削除=両方,項目名=する,ファイル名変更=しない,{[得意先コード],[得意先名称],[得意先フリガナ],[得意先略称],[郵便番号],[住所1],[住所2],[部署名],[役職名],[ご担当],[敬称],[TEL],[FAX],[分類1],[分類2],[企業コード],[売上伝票],[請求書],[DM発行],[取引区分],[単価種類],[掛率],[請求書コード],[締グループ],[税稼動],[回収方法],[回収サイクル],[回収日],[手数料負担区分],[手形サイト],[与信限度額],[税端数処理],[担当者コード],[メモ],[メールアドレス],[ホームページ]}
読み込み テキスト,条件名="Tokdai読込"
ファイル削除 &mtxt3
終了 表 編集対象表
手続き定義終了
投稿者:ONnoji - 投稿日時:2002年12月10日 10時34分
藤野さん、こんにちは。
> 何を勘違いしたのか、変数宣言をメインの下に書かず、手続きの初めに書いて
> しまいました、もう一度イベント道場の1回目を読み直し、フォームに局所変数で
> 登録 更にメインの下に変数宣言局所mを追加して書き直しました。一部訂正個所
> もありましたが、実験の結果うまく動きます。メインの下はすぐ変数宣言次に手続き
> 開始と覚えればいのですね。
コツ:[名札 メイン]の下はすぐ変数宣言を書く
いいことに気がついましたね。そのように覚えてください。
>次に手続き定義開始と覚えればいのですね。
そうです。
[名札 メイン]の範囲は最初に現れた[手続き定義開始]コマンドの直前までです。
最初に現れた[手続き定義開始]コマンドが、
[イベントハンドラ]であっても、[一般手続き]であってもどちらでも構いません。
> ともあれ、下記のように完成しましたが、これでいいですか?
>名札 メイン
> *変数を宣言
> 変数宣言 局所,文字列{&mファイル名1,&mファイル名2,&mファイル名3}
> 変数宣言 局所,文字列{&mtxt1,&mtxt2,&mtxt3}
>
>手続き定義開始 cmd台帳読込click()
>
> &mファイル名1="担当者台帳",&mファイル名2="担当者所属部署",&mファイル名3=得意先台帳
>
> &mtxt1="Tandai.txt”,&mtxt2="Tok2bun.txt”,&mtxt3="Tokdai.txt"
>
> *担当者台帳の読込
> 表 &mファイル名1
> 行削除 *
> 表整理 余白割合=10
> 読み込み条件登録 テキスト,条件名="Tandai読込",&mtxt1,区切り="09",空白削除=両方,項目名=する,ファイル名変更=しない,{[担当者コード],[担当者名],[担当者フリガナ],[部門]}
> 読み込み テキスト,条件名="Tandai読込"
> ファイル削除 &mtxt1
> 終了 表 編集対象表
>
> *担当者所属部署の読込
> 表 &mファイル名2
> 行削除 *
> 表整理 余白割合=10
> 読み込み条件登録 テキスト,条件名="Tok2読込",&mtxt2,区切り="09",空白削除=両方,項目名=する,ファイル名変更=しない,{[部門コード],[部門名],[部門略]}
> 読み込み テキスト,条件名="Tok2読込"
> ファイル削除 &mtxt2
> 終了 表 編集対象表
>
> *得意先台帳の読込
> 表 &mファイル名3
> 行削除 *
> 表整理 余白割合=10
> 読み込み条件登録 テキスト,条件名="Tokdai読込",&mtxt3,区切り="09",空白削除=両方,項目名=する,ファイル名変更=しない,{[得意先コード],[得意先名称],[得意先フリガナ],[得意先略称],[郵便番号],[住所1],[住所2],[部署名],[役職名],[ご担当],[敬称],[TEL],[FAX],[分類1],[分類2],[企業コード],[売上伝票],[請求書],[DM発行],[取引区分],[単価種類],[掛率],[請求書コード],[締グループ],[税稼動],[回収方法],[回収サイクル],[回収日],[手数料負担区分],[手形サイト],[与信限度額],[税端数処理],[担当者コード],[メモ],[メールアドレス],[ホームページ]}
> 読み込み テキスト,条件名="Tokdai読込"
> ファイル削除 &mtxt3
> 終了 表 編集対象表
>手続き定義終了
そうですね…OKで〜す。
[フォームの編集対象表]以外の表を開いて→何か処理を施す→表を閉じる
こんな流れを何度か行っていますね。
[表 ファイル名]コマンドで、表を開く時に表番号を指定しないのは進歩ですね。
初心者講座の第一弾では表番号を指定して失敗しましたね。
[終了 表 編集対象表]コマンドで不用になった表を閉じているのがいいですね。
そういえば…初心者講座の第一弾では、[表]コマンドで閉じて失敗しましたね。
ところで、テキストファイルの保存場所はどうなっているのでしょうか?
おそらく、フォーム( .wfm )も他のファイル(
.kev .tbl .txt )も同じフォルダに保存してあるのでしょうね。
この場合にはファイルのパス名を省略しても問題は起きません。
時々ファイルの拡張子ごとにフォルダを別々に分ける方を見うけますが、これでは管理がとても大変です。
藤野さんのように関連するファイルをひとつのフォルダにまとめて配置すると管理が容易になります。
<追伸>
ところで、[読み込み条件]に登録してから[読み込み
テキスト,条件]コマンドを実行していますが、
表の項目の順番とテキストファイルのデータの順番は同じではありませんか?
>1.担当者台帳.TBL ← "Tandai.txt"
>
>{担当社コード,担当者名,担当者フリガナ,部門
}
> 読み込み条件登録 テキスト,条件名="Tandai読込",&mtxt1,区切り="09",空白削除=両方,項目名=する,ファイル名変更=しない,\
>{[担当者コード],[担当者名],[担当者フリガナ],[部門]}
>2. 担当者所属部署.TBL ← "Tok2bun.txt"
>
>{部門コード,部門名,部門略 }
> 読み込み条件登録 テキスト,条件名="Tok2読込",&mtxt2,区切り="09",空白削除=両方,項目名=する,ファイル名変更=しない,\
>{[部門コード],[部門名],[部門略]}
>3.得意先台帳.TBL ← "Tokdai.txt"
>
>{得意先コード,得意先名称,得意先フリガナ,得意先略称,
> 郵便番号,住所1,住所2,部署名,役職名,ご担当,敬称,TEL,FAX,
> 分類1,分類2,企業コード,
> 売上伝票,請求書,DM発行,取引区分,単価種類,掛率,請求書コード,締グループ,税稼動,回収方法,回収サイクル,回収日,
> 手数料負担区分,手形サイト,与信限度額,税端数処理,
> 担当者コード,メモ,メールアドレス,ホームページ,部門
}
> 読み込み条件登録 テキスト,条件名="Tokdai読込",&mtxt3,区切り="09",空白削除=両方,項目名=する,ファイル名変更=しない,\
>{[得意先コード],[得意先名称],[得意先フリガナ],[得意先略称],\
>[郵便番号],[住所1],[住所2],[部署名],[役職名],[ご担当],[敬称],[TEL],[FAX],\
>[分類1],[分類2],[企業コード],\
>[売上伝票],[請求書],[DM発行],[取引区分],[単価種類],[掛率],[請求書コード],[締グループ],[税稼動],[回収方法],[回収サイクル],[回収日],\
>[手数料負担区分],[手形サイト],[与信限度額],[税端数処理],\
>[担当者コード],[メモ],[メールアドレス],[ホームページ]}
このように表の項目の順番とテキストファイルのデータの順番が同じならば…
読み込み テキスト,&mtxt1,区切り
= "09",終了状態 = &status,*
※ &status は自動変数で整数型
※戻り値 説明
※ 1 終了した。
※ 0 共有違反以外のエラーが発生した。
※-2 他の利用者が、置換や併合などの処理を実行中(ファイル排他)。
このようにも出来ると思います。
これは作る側の好みの問題なので、決してこちらの方法が優れているというわけではありません。
要は動けば良いのですから(^^ゞ
投稿者:藤野 - 投稿日時:2002年12月11日 21時49分
ONnojiさん今晩は。
テキストファイルの保存場所は税込合計というフォルダを作りそこに書き出すように統一するつもりです、
ややこしくすると、使い手が混乱をするので、簡単に全部1つのフォルダーに収納することにしました。
読み込みの件ですが
表の項目の順番とテキストのデーターが同じならその通りでいいのですね、判りました。
ややこしいことをする時だけ、条件登録をする。
こうすると、プログラムが短くなりますね。
またしても、なるほど、なるほどです。
ここでこの章は完成です。
欲を出せば、ファイルが有るか無いか、調べてから読み込みを実行するとなるのでしょうが・・・・。
前に伺った#FSIZEは悲しげさんが、ファイル複写で書いているのを、幅田さんのBBSでみかけました。
こんな風に使うのかと勉強になりました。