HOME HELP 新規作成 新着記事 ツリー表示 スレッド表示 トピック表示 ファイル一覧 検索 過去ログ

■14276 / ResNo.10)  Re[4]: 加工開始日を求めたい
  
□投稿者/ ジェダイの桐 -(2024/04/10(Wed) 17:28:47)
    ONnojiさん

    プログラミングテキスト非常に読みやすいです。

    >プログラミングの書籍などでは変数とは[名前が付いた箱]といった比喩(例え話)が見受けられますが、

    >このような比喩(例え話)は頭の中が混乱するだけなので忘れてください。


    ネットで変数の事を調べると必ずと言って良いほど みかん箱 の話が出てきました。
    確かに みかん箱 で例える必要もないですね。


    >変数宣言 局所,文字列{ &variableName }


    いつも疑問に感じる事が、(桐に関しては?)変数名は漢字でもOKなはずなのに
    何故英語が書くのかが分からないのです。

    この英語は 任意のキーワード なのか プログラムの世界では一般的なキーワード なのか??

    任意だとしら、なにか命名法則があるのか??

    初心者目線の疑問でした。

    知れて良かった事は 代入 を省略して記入してあると言う事です。
    これを 知っているか いないかは 個人的にはかなり大きいと思います。


    代入しているんだろうな と想像してプログラムを見るより、代入を省略しているけど代入していると確信してプログラムを見る方が理解度が高くなるからです。


    初心者向けのプログラミングの読み物が完成してHPにアップされた暁には、必ず読ませて頂きます(^^ゞ

引用返信 [メール受信/OFF] 削除キー/
■14277 / ResNo.11)  Re[9]: 加工開始日を求めたい
□投稿者/ ONnoji -(2024/04/10(Wed) 17:34:12)
    2024/04/10(Wed) 19:00:39 編集(投稿者)

    > 桐で使えるガントチャートで最大に良いと感じるのは、
    > スケジュール管理が出来る事も重要ですが、データベースとして蓄積出来る事だと思いました。
    > 例えば、
    > ガントチャートで可視化して量産品生産スケジュール管理をすると共に、
    > 1年程度データを蓄積する。
    > 蓄積したデータを分析した時、いつも超過している工程があったとしら改善策を考える事が出来ます。
    > また、備考欄 を 難易度欄に置き換えて使用した場合、初期設定が高難度だとしても、実際の完了日が予定完了日より常に短縮して終了している場合、
    > 難易度設定の見込みが甘かった or 人材が育って来ている 等 検証する事も出来ると思います。
    > エクセルでも、書き込みした事が対応可能なのかもしれませんが、やっぱり餅は餅屋じゃないですが、データベースソフトで分析できた方が良いと思います(^^)/

    そうですね。

    データベースの方がワークシートよりも保管しやすいですよね。

    今回のガントチャート用の表(.tbl)の定義は次の内容です。

    番号  項目名  データ型
    1    カテゴリ 文字列
    2    タスク1 文字列
    3    タスク2 文字列
    4    担当   文字列
    5    開始日  日時
    6    終了日  日時
    7    超過完了予定日  日時
    8    完了日  日時
    9    超過対策 文字列
    10   備考   文字列
    11   1     文字列
    12   2     文字列
    13   3     字列
    14   4     文字列
      :
     途中省略
      :

    96   86    文字列
    97   87    文字列
    98   88    文字列
    99   89    文字列
    100   90    文字列
    101   カレンダ開始日  文字列
        
    ここで重要なのは、

    1    カテゴリ 文字列
    2    タスク1 文字列
    3    タスク2 文字列
    4    担当   文字列
    5    開始日  日時
    6    終了日  日時
    7    超過完了予定日  日時
    8    完了日  日時
    9    超過対策 文字列
    10   備考   文字列

    の項目だけなんですよね。

    残りの項目は、単に視覚化するだけの項目なんですね。

    拙作では、任意の日付からカレンダを生成して、90日分の視覚化が可能というわけです。

    ちなみにカレンダ機能は、先日アップデートした INF_DatePicker のエンジンを流用しています。(*^^)v


引用返信 [メール受信/OFF] 削除キー/
■14278 / ResNo.12)  Re[5]: 加工開始日を求めたい
□投稿者/ ONnoji -(2024/04/10(Wed) 18:05:28)
    2024/04/10(Wed) 22:56:23 編集(投稿者)

    > プログラミングテキスト非常に読みやすいです。
    > >プログラミングの書籍などでは変数とは[名前が付いた箱]といった比喩(例え話)が見受けられますが、
    > >このような比喩(例え話)は頭の中が混乱するだけなので忘れてください。
    >
    > ネットで変数の事を調べると必ずと言って良いほど みかん箱 の話が出てきました。
    > 確かに みかん箱 で例える必要もないですね。

    みかん箱じゃ余計に分からなくなりますよね。

    下手くそなテクニカルライターが始めた例え話だと思いますが、ネットで蔓延していますよね。

    その他に、桐ではもちろんオブジェクト指向プログラミングは出来ないのですが、

    Javaなどのオブジェクト指向プログラミング言語でも、ものすごい例え話を並べて読者を煙に巻いています。

    あまりにも変な比喩(例え話)が世の中に蔓延したので、とうとう「なんでもオブジェクト」だと言い出す人まで現れました。

    こうなると、ChatGPT に勝るとも劣らないデタラメな議論が巻き起こったりしますね。

    レストランで出されたメニューに書かれている料理名を見て、これを「オブジェクト指向メニュー」だと誰も言わないでしょう。

    噴飯ものですよね。

    まったく呆れ果てたものですねぇ〜。アハハha

    > >変数宣言 局所,文字列{ &variableName }
    > いつも疑問に感じる事が、(桐に関しては?)変数名は漢字でもOKなはずなのに
    > 何故英語が書くのかが分からないのです。

    例えば #文字列関数のヘルプには次のようなシンタックス(文法)が掲載されています。

     #文字列( 【 num | num , n | tmst | itvl 】 )

    このように、桐のヘルプでも英語的なキーワードがたくさんあります。

    コンピュータの世界では、英語圏が中心で発達してきたんですよね。

    だから、英語や英語的なキーワードがどうしても多くなります。

    これは仕方ないと思って慣れてください。

    余談ながら、かつての日本IBMの5550というPCでは、キーボードとは呼ばずに鍵盤装置と呼称していたんですよ。

    日本IBMが頑張ってなんでも日本語で表記していたのですが、さすがにマウスは鼠とは呼ばなかったと記憶しています。(^^ゞ

    > この英語は 任意のキーワード なのか プログラムの世界では一般的なキーワード なのか??
    > 任意だとしら、なにか命名法則があるのか??
    > 初心者目線の疑問でした。

    私( ONnoji )の著作では非常に英語風の変数名が多いと思います。

    これは私( ONnoji )が漢字が使えない8ビットPC(当時マイコンと呼んでいた)からプログラミングをしていたからです。

    また桐ver.2 と出会う前までは、dBASE2/3/3+ といったデータベースでプログラミングしていましたが、

    やはり日本語の変数は誤動作の元になることがあるので、日本語は極力使わないようにしていましたよ。

    桐では日本語の変数名でも何の問題はありませんが、これは桐が最初から日本語対応だったからですよ。

    Windows が発売されたころのオフィスでも日本語の変数名は忌避されていたと思います。

    もちろん、今ではOKでしょうけれど・・・※怖さを知っている人はやはり避けますけどね。アハハha

    > 知れて良かった事は 代入 を省略して記入してあると言う事です。
    > これを 知っているか いないかは 個人的にはかなり大きいと思います。

    桐の[代入]コマンドや、VB/VBAの[Let] ステートメントは、まず、いや絶対に書きませんね。

    でも、入門書やヘルプでは、その事を教えてくれないようですね。

    > 代入しているんだろうな と想像してプログラムを見るより、代入を省略しているけど代入していると確信してプログラムを見る方が理解度が高くなるからです。
    > 初心者向けのプログラミングの読み物が完成してHPにアップされた暁には、必ず読ませて頂きます(^^ゞ

    だから、数学の等式と勘違いして頭の中が混乱する人が多いんですよ。アハハha。

    テキストはごく最初の部分だけを添付しました。

    現在鋭意執筆中ですので、完成したら拙作HPに掲載しますのでお楽しみにしてください。

    p.s.

    > この英語は 任意のキーワード なのか プログラムの世界では一般的なキーワード なのか??

    桐の関数に #文字列、#条件選択 がありますね。

    しかし、私( ONnoji )は、それぞれの関数の別名 #str #cond を好んで使うわけです。

    また、ちぇっ!また英語かぁ〜という声が聞こえてきそうですが・・・(^^ゞ

    実は、これらの別名は、多くのソフトウェアでも一般的なものなのです。

    思い付くまま列挙すると

    #文字列 → #str 意味:string 文字列

    #部分列 → #sstr 意味:sub string 部分列

    #条件選択 → #cond 意味:条件

    #終端行 → #eof 意味:End Of File ファイルの終わり

    #文字置換 → #s 意味:stuff の s だと思われます 詰め込む ※アルファベット1文字の関数名は一般的ではありません。

    他にもあると思いますが・・・この辺で(^^ゞ

    なお、

    #連結 → #cat は 語源として catalog だっと思いますが今ではこの関数を使う人はまず居ないと思います。

    なぜならば #cat( [名前], "様" ) は、関数を使わずに [名前] + "様" という式で書けるからです。

    余談ついでに(^^ゞ

     #計算 の別名は #PROGN。
     この別名って、プログラミング言語 Common Lisp の progn関数からきているようですね。
     prog1 prog2 というのもあるから、 n は n番め=最後という意味なのでしょうかね。
     そういえば、K3殿は Lisp の開発もしてましたっけ。
     ちなみに、#SETQ も Lisp 由来かもしれない。

     #TRIM や #STR など、桐の関数の別名はプログラミング言語でお馴染みのものから来ていますね。
     私は dBASE言語を使っていたので、桐のコマンド・関数の別名の大部分の見当がすぐに付きました。
     なお、[コマンド]コマンドの別名 eval はエバリュエーション(Evaluation)でしょうね。
     eval をイーバルと読む技術者も多いようですね。

引用返信 [メール受信/OFF] 削除キー/
■14279 / ResNo.13)  Re[6]: 加工開始日を求めたい
□投稿者/ うにん -(2024/04/10(Wed) 21:09:31)
    > 桐では日本語の変数名でも何の問題はありませんが、これは桐が最初から日本語対応だったからですよ。
    >
    > Windows が発売されたころのオフィスでも日本語の変数名は忌避されていたと思います。
    >
    > もちろん、今ではOKでしょうけれど・・・※怖さを知っている人はやはり避けますけどね。アハハha

    WindowsXPだったかなあ、ユーザ名を日本語にすると、何かとトラブルのもとになってました。(インストール時にIMEが使えるので日本語で入れてしまう人が多数いた)

    最近でも、FileMakerというデータベースソフトで、ファイル名を日本語にするとサーバからダウンロードできなくなるトラブルとかありました。
引用返信 [メール受信/OFF] 削除キー/
■14280 / ResNo.14)  Re[7]: 加工開始日を求めたい
□投稿者/ ONnoji -(2024/04/10(Wed) 21:56:11)
    > WindowsXPだったかなあ、ユーザ名を日本語にすると、何かとトラブルのもとになってました。(インストール時にIMEが使えるので日本語で入れてしまう人が多数いた)
    > 最近でも、FileMakerというデータベースソフトで、ファイル名を日本語にするとサーバからダウンロードできなくなるトラブルとかありました。

    桐のユーザは恐怖体験が無いんですよね。アハハha

    普通のソフトならデータベースのフィールド名だって漢字を使いませんよね。オッカナクッテね(^^ゞ

    ファイル名だって、変数名だって、etc. でもこれは元が舶来品のソフトウェアの場合ですね。

引用返信 [メール受信/OFF] 削除キー/
■14281 / ResNo.15)  Re[6]: 加工開始日を求めたい
□投稿者/ ジェダイの桐 -(2024/04/11(Thu) 08:59:44)
    ONnojiさん


    > やはり日本語の変数は誤動作の元になることがあるので、日本語は極力使わないようにしていましたよ。
    >
    > 桐では日本語の変数名でも何の問題はありませんが、これは桐が最初から日本語対応だったからですよ。
    >
    > Windows が発売されたころのオフィスでも日本語の変数名は忌避されていたと思います。
    >
    > もちろん、今ではOKでしょうけれど・・・※怖さを知っている人はやはり避けますけどね。アハハha
    >


    なるほど。
    そう言う歴史があるんですね!

    そのような歴史(過去は漢字が使えなかった。そもそも日本語を想定していないので、日本語を使うとトラブルが起こる可能性がある。)があると言う前段をしっていれば、すんなり英語が入ってきます。

    うにんさん と  ONnojiさんのコメントで、よりリアルに知る事が出来ました(^^♪



    >>代入しているんだろうな と想像してプログラムを見るより、代入を省略しているけど代入していると確信してプログラムを見る方が理解度が高くなるからです。
    >>初心者向けのプログラミングの読み物が完成してHPにアップされた暁には、必ず読ませて頂きます(^^ゞ
    >
    > だから、数学の等式と勘違いして頭の中が混乱する人が多いんですよ。アハハha。
    >


    =は等式じゃなく 代入 していると言う事ですもんね。
    知識が無ければ数学に感じてしまいます・・・(私も 明らかに代入に意味だなと読めない物以外は 数式 だと思っていました・・・)


    >
    > #文字列 → #str 意味:string 文字列
    >
    > #部分列 → #sstr 意味:sub string 部分列
    >
    > #条件選択 → #cond 意味:条件
    >
    > #終端行 → #eof 意味:End Of File ファイルの終わり
    >
    > #文字置換 → #s 意味:stuff の s だと思われます 詰め込む ※アルファベット1文字の関数名は一般的ではありません。
    >
    > 他にもあると思いますが・・・この辺で(^^ゞ
    >
    > なお、
    >
    > #連結 → #cat は 語源として catalog だっと思いますが今ではこの関数を使う人はまず居ないと思います。
    >
    > なぜならば #cat( [名前], "様" ) は、関数を使わずに [名前] + "様" という式で書けるからです。
    >
    > 余談ついでに(^^ゞ
    >
    >  #計算 の別名は #PROGN。
    >  この別名って、プログラミング言語 Common Lisp の progn関数からきているようですね。
    >  prog1 prog2 というのもあるから、 n は n番め=最後という意味なのでしょうかね。
    >  そういえば、K3殿は Lisp の開発もしてましたっけ。
    >  ちなみに、#SETQ も Lisp 由来かもしれない。
    >
    >  #TRIM や #STR など、桐の関数の別名はプログラミング言語でお馴染みのものから来ていますね。
    >  私は dBASE言語を使っていたので、桐のコマンド・関数の別名の大部分の見当がすぐに付きました。
    >  なお、[コマンド]コマンドの別名 eval はエバリュエーション(Evaluation)でしょうね。
    >  eval をイーバルと読む技術者も多いようですね。


    この解説はかなり助かますm(__)m
    財産にさせて頂きます!

    ◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇

    ここで一つ疑問があります。
    今回作成して頂いたプログラムの変数名の中に


    変数宣言 自動,日時 { &加工日1, &加工日2 }


    があります。
    コメントを頂いた流れで言えば

     &加工日1 → &dom1 (date of manufacture)
     &加工日2 → &dom2

    と言う変数名になった方が自然な印象です。

    表に定義のある項目名を変数名にする時は、表の言葉に合わせると言う事なのでしょうか??


    う〜ん。
    プログラムは奥が深いですね(^^ゞ

引用返信 [メール受信/OFF] 削除キー/
■14282 / ResNo.16)  Re[7]: 加工開始日を求めたい
□投稿者/ ONnoji -(2024/04/11(Thu) 09:46:45)
    2024/04/11(Thu) 11:07:21 編集(投稿者)

    > =は等式じゃなく 代入 していると言う事ですもんね。
    > 知識が無ければ数学に感じてしまいます・・・(私も 明らかに代入に意味だなと読めない物以外は 数式 だと思っていました・・・)

    初級者の最初の挫折がこの部分である人って案外と多いと思いますね。

    > ここで一つ疑問があります。
    > 今回作成して頂いたプログラムの変数名の中に
    > 変数宣言 自動,日時 { &加工日1, &加工日2 }
    > があります。
    > コメントを頂いた流れで言えば
    >  &加工日1 → &dom1 (date of manufacture)
    >  &加工日2 → &dom2
    > と言う変数名になった方が自然な印象です。
    > 表に定義のある項目名を変数名にする時は、表の言葉に合わせると言う事なのでしょうか??

    流れとしては次のようになりますね。

     手続き定義開始 cmdテストClick( )
      変数宣言 自動,文字列{ &title = "cmdテストClick( )", &msg }
      変数宣言 自動,日時 { &加工日1, &加工日2 }
       :
       :
      行訂正 [加工日1] = &加工日1, [加工日2] = &加工日2
       :
       :
     手続き定義終了

    ということで、項目[加工日1]に対応する変数が &加工日1 で、項目[加工日2]に対応する変数が &加工日2 という事です。

    これを

      行訂正 [加工日1] = &dom1, [加工日2] = &dom2

    と書いてしまうと、もちろん動きますが・・・(^^ゞ

    一番の問題は、後で読み返す際に直感的に分かりにくいんですね。
           ・・・・・・・・・・・・・・・・・・

      行訂正 [加工日1] = &加工日1, [加工日2] = &加工日2

    としていれば、一目瞭然です。※最小限の思考で済みますから・・・(^^ゞ

    それに項目名と変数名が同じならば、イベント処理を検索する時に都合がいいでしょう。※後々のことを考えましょう。アハハha

    添付のテキストには

    > 桐のようなデータベースソフトでは、データベースで指定できる[項目のデータ型]と[変数のデータ型]は1対1で対応するものなのです。
    > なので、任意のレコード(行)の[項目の【値】]を任意の名前の[変数の【値】]として入れることが出来ます。

    という文言があると思います。

    変数の最も大事な目的は、データベースの項目の値の一時的な格納先(バッファ)ということです。

    そして、もう一つの変数の目的は、プログラムの流れを制御することです。

    例えば、変数 &recordNum は、プログラムの流れの選択制御に使われています。

     手続き定義開始 prc加工日探索( 参照 日時 &加工日1, 参照 日時 &加工日2 )
      変数宣言 自動,文字列{ &title = "prc加工日探索( )", &msg }
      変数宣言 自動,長整数{ &recordNum }
       :
       :
      &recordNum = #行番号
      ジャンプ 行番号 = &recordNum
      if ( &recordNum > 5 )
       ジャンプ 行番号 = -5
       &加工日1 = [日付]
      end
       :
       :
     手続き定義終了

    話が戻りますが・・・

    >  &加工日1 → &dom1 (date of manufacture)
    >  &加工日2 → &dom2
    > と言う変数名になった方が自然な印象です。

    &dom1 &dom2 といった短い英語風の変数名は、意味が明瞭ならばOKですが、この場合には好ましくないでしょう。

    &dateOfManufacture1 &dateOfManufacture2 の方が全然素直です。
                           ・・・・

    ネットをご覧になると、変数名がアルファベット3文字というのが多いと気が付くでしょう。

    これも昔のPCのレガシー(遺産)なんですよ。

    昔のPCのメモリーが少なかったので、変数名を長くできなかったんですよ。

    それと、暗号のような変数を使っていても本人が判れば良しだったり、開発チームで暗号を共有していたりしたのです。

    そもそも、ソフトウェアに添付されているマニュアルのプログラミング例が暗号のような変数名だったのですから・・・

    桐のプログラミング例も同じく、妙に変数名を短くしているケースを見ると思いますが、これはDOS桐の文字数制限の影響でしょうね。

    いずれにしても、短い変数名を良しとするのはレガシーです。MS-DOS時代は何かと窮屈だったんですよ。アハハha

    かといって長すぎるのも読み下しが大変ですから、程々にしておくのが肝心だと思いますよ。

    > う〜ん。
    > プログラムは奥が深いですね(^^ゞ

    問題意識を持っていれば大丈夫です。

    後は経験を積んで慣れるしかありません。ガーン (*^^)ok

    p.s.

    私( ONnoji )の場合には、項目名が基本的に漢字なので、対応する変数名も漢字になります。

    そして、それ以外の変数名は基本的に英語または英語風です。
                 ・・・・

    なお、アルファベットは小文字を基本とします。

    ソフトウェアによっては大文字を基本とするものもあります。

    例えば、VB/VBAは大文字が基本だったと思います。※歴史的な経緯がありますけれど・・・

    しかし、それ以外のソフトウェアでは小文字を基本とするものが多いです。

    ちなみに、私( ONnoji )の場合には、キャメルケースを常用しています。

    こちら
     ↓
     キャメルケース フリー百科事典『ウィキペディア(Wikipedia)』
     https://ja.wikipedia.org/wiki/%E3%82%AD%E3%83%A3%E3%83%A1%E3%83%AB%E3%82%B1%E3%83%BC%E3%82%B9

     名称                       表記例     備考
     ローワーキャメルケース、または単にキャメルケース getInputReader 複合語の先頭を、小文字で書き始める。

引用返信 [メール受信/OFF] 削除キー/
■14283 / ResNo.17)  Re[8]: 加工開始日を求めたい
□投稿者/ ジェダイの桐 -(2024/04/11(Thu) 14:15:11)
    ONnojiさん


    > ということで、項目[加工日1]に対応する変数が &加工日1 で、項目[加工日2]に対応する変数が &加工日2 という事です。
    >
    > これを
    >
    >   行訂正 [加工日1] = &dom1, [加工日2] = &dom2
    >
    > と書いてしまうと、もちろん動きますが・・・(^^ゞ
    >
    > 一番の問題は、後で読み返す際に直感的に分かりにくいんですね。
    >        ・・・・・・・・・・・・・・・・・・
    >
    >   行訂正 [加工日1] = &加工日1, [加工日2] = &加工日2
    >
    > としていれば、一目瞭然です。※最小限の思考で済みますから・・・(^^ゞ
    >
    > それに項目名と変数名が同じならば、イベント処理を検索する時に都合がいいでしょう。※後々のことを考えましょう。アハハha


    解説有難うございますm(__)m
    疑問が解決しました!!
    分かりやすさは重要ですよね(^^♪


    > &dom1 &dom2 といった短い英語風の変数名は、意味が明瞭ならばOKですが、この場合には好ましくないでしょう。
    >
    > &dateOfManufacture1 &dateOfManufacture2 の方が全然素直です。
    >                        ・・・・
    >
    > ネットをご覧になると、変数名がアルファベット3文字というのが多いと気が付くでしょう。
    >
    > これも昔のPCのレガシー(遺産)なんですよ。
    >
    > 昔のPCのメモリーが少なかったので、変数名を長くできなかったんですよ。
    >
    > それと、暗号のような変数を使っていても本人が判れば良しだったり、開発チームで暗号を共有していたりしたのです。
    >
    > そもそも、ソフトウェアに添付されているマニュアルのプログラミング例が暗号のような変数名だったのですから・・・
    >
    > 桐のプログラミング例も同じく、妙に変数名を短くしているケースを見ると思いますが、これはDOS桐の文字数制限の影響でしょうね。
    >
    > いずれにしても、短い変数名を良しとするのはレガシーです。MS-DOS時代は何かと窮屈だったんですよ。アハハha
    >
    > かといって長すぎるのも読み下しが大変ですから、程々にしておくのが肝心だと思いますよ。


    こちらもありがとうございます。
    決行 3文字 のアルファベットが出てくる印象なので、そう言うものなのかなと思ってしまいました。
    やっぱり、経緯を知る事は勉強する上で理解度に差が出ると思うので教えて頂いて良かったです!


引用返信 [メール受信/OFF] 削除キー/
■14284 / ResNo.18)  Re[9]: 加工開始日を求めたい
□投稿者/ ONnoji -(2024/04/11(Thu) 17:06:10)
    2024/04/11(Thu) 17:50:49 編集(投稿者)

    蛇足を少々・・・

    > いずれにしても、短い変数名を良しとするのはレガシーです。MS-DOS時代は何かと窮屈だったんですよ。アハハha
    > かといって長すぎるのも読み下しが大変ですから、程々にしておくのが肝心だと思いますよ。

    いくつかの例外がありますの・・・

    それは「遠い昔、遥か彼方の銀河系でコンピュータ言語が発明された時以来」の習慣です。

    次の1文字の変数名は普通に使いますよ。

    それは、アイ、ジェー、ケー つまり i j k です。

    桐の場合には、変数を直接(リテラル)記述する場合には、接頭辞のアンパサンド記号(&)を付けますので

    つまり、&i &j &k ですが、これはプログラミングに慣れている人には違和感がありません。

    これらの変数は整数のカウンタとして使うんですよ。

    すなわち、&i が 1、&i が 2、&i が 3、… &i が n のように値が増加していくケースです。

    これは「ヒツジが一匹、ヒツジが二匹・・・」というやつです。(^^ゞ

    例えば、

     &step = 1
     &loop = 10
     繰り返し &i = 1, &loop, &step

      ** &i の値が、1から10になるまで1(&step)増分して繰り返す

     繰り返しい終了

    ちなみに、&j &k は、さらに繰り返しが入れ子になる場合に使いますね。
         ・・・・・・・・・・・・・・・・・・・・・・・・・・

    1文字の変数名ではありませんが、私( ONoji )はカウンタとして &cnt をよく使います。

    本当は &count でも良いのですが、やはり3文字のレガシーで &cnt です。アハハha (^^ゞ

    例えば、

     &cnt = 0
     繰り返し ( &cnt <= 10 )

      ** &i の値が、1から10になるまで1増分して繰り返す

      &cnt = &cnt + 1
     繰り返し終了

    とかですね。

    ところで、&cnt = &cnt + 1 もヘンテコに見えるでしょう。

    でもこれは、&cntに1加算した結果を &cnt 自身に代入するという意味です。

    つまり、加算(インクリメント)のコマンドになるわけです。

    ちなみに、桐以外のコンピュータ言語でも基本的に同じですが、

     i = i + 1 と書かずに i++ と書く言語が多いですよ。

    もしも、i++ なんて見るとますます頭の中が混乱しますよね。

    でもね、プログラマーは i++ を i = i + 1 とは絶対に書かないんですよ。アハハha

    p.s.

    [繰り返し ... 繰り返し終了]という繰り返しコマンドはワカリニクイでしょう。

    初級者が最も苦手とするのが、この繰り返し処理なんですよ。

    そうそう、サンプルにも繰り返し処理がありましたね。

      :
      :
     ジャンプ 行番号 = 先頭
     繰り返し ( .not #eof )

       :
      分かり易さのために途中のコマンドを省略しています
       :

      ジャンプ 行番号 = 次行 /* これを忘れると無限ループになります */
     繰り返し終了
      :
      :


     Did you understand? (^^)ok

引用返信 [メール受信/OFF] 削除キー/
■14285 / ResNo.19)  Re[10]: 加工開始日を求めたい
□投稿者/ ジェダイの桐 -(2024/04/12(Fri) 09:31:19)
    ONnojiさん


    > 次の1文字の変数名は普通に使いますよ。
    >
    > それは、アイ、ジェー、ケー つまり i j k です。
    >
    > 桐の場合には、変数を直接(リテラル)記述する場合には、接頭辞のアンパサンド記号(&)を付けますので
    >
    > つまり、&i &j &k ですが、これはプログラミングに慣れている人には違和感がありません。


    これば疑問に思っていました。
    ネットでプログラムの事を見ている時に i って頻繁に目にしました。

    これも過去からの流れなんですね!

    但し、 j と k は初めて知りました。



    > 本当は &count でも良いのですが、やはり3文字のレガシーで &cnt です。アハハha (^^ゞ


    初級者目線(私だけかもしませんが・・・)で言えば、正にこういう事がしりたかったのです。

    &count でも良い けど 3文字のレガシーで &cnt

    なんでもない事かもしれないですが、変数名は自由にしていいのに
    何故英語? 何故3文字? (?_?)

    過去からの流れで 英語 を使用した方がトラブル回避になる、項目に代入する時は 見た目に分かりやすい方が良い。(結果 漢字を使用する or 一般的に理解出来れば 3文字英語 そうでなければ 素直に英単語 にした方が分かりりやすい)

    この知識が前段で無いと、プログラミングの門が狭く感じてしまうのです・・・(^^;


    > ところで、&cnt = &cnt + 1 もヘンテコに見えるでしょう。


    確かに見えましたが、
    ↓の開設のおかげで

    >
    > でもこれは、&cntに1加算した結果を &cnt 自身に代入するという意味です。
    >
    > つまり、加算(インクリメント)のコマンドになるわけです。

    &msg =      "Start"
     &msg = &msg + "\n\nこれはテスト用のメッセージボックスです"
     &msg = &msg + "\n\n不要になったらコメントアウトしてください"
     メッセージボックス  &title, &msg, アイコン = i, ボタン指定 = 1, 制御文字展開 = する

    &msg = &msg + "\n\n文字列"
    の意味が非常に良く分かりましたm(__)m

    > p.s.
    >
    > [繰り返し ... 繰り返し終了]という繰り返しコマンドはワカリニクイでしょう。
    >
    > 初級者が最も苦手とするのが、この繰り返し処理なんですよ。
    >
    > そうそう、サンプルにも繰り返し処理がありましたね。
    >
    >   :
    >   :
    >  ジャンプ 行番号 = 先頭
    >  繰り返し ( .not #eof )
    >
    >    :
    >   分かり易さのために途中のコマンドを省略しています
    >    :
    >
    >   ジャンプ 行番号 = 次行 /* これを忘れると無限ループになります */
    >  繰り返し終了
    >   :
    >   :


    自分で完璧に作れるかは怪しいですが、
    私の理解が正しければ・・・

    ジャンプ 行番号 = 先頭 ←最初は先頭行にジャンプする
     繰り返し ( .not #eof ) ←このプログラム以下から 最終行 になるまで繰り返す


    やりたい事の命令


    ジャンプ 行番号 = 次行 ←これは ジャンプ 行番号 = 先頭 に対して 次行なので 2行目 最終行になるまで加算させる。

    だから注釈の様に ジャンプ 行番号 = 次行 を忘れると 永遠に 先頭行 を繰り返す事になる

    という事だと認識していますm(__)m


    ◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇

    昨日プログラムを見ていて気付いた事があります。


    多重化
     &multiTblNum = #is表  /* 多重化した表の表番号を取得 */



    行訂正 [加工日1] = &加工日1, [加工日2] = &加工日2



    終了 表 &multiTblNum  /* 多重化した表を閉じる */
     編集表 &hwindow


    これを見ると、 多重化 した表に 求めたいデータを最終行まで代入していると理解しています。

    最終行までいって繰り返しが終了しらたら 多重化 した表を閉じて、編集対象表に戻る。

    これ自体は理解の通りであれば、納得出来るのですが
    代入している表が 多重化 した表です。

    それが何故編集対象表に求めた結果があるのか??

    これは、 多重化した表 と 編集対象表は リンクしていると言う事なのでしょうか??

    ◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇


    このツリーは本当に私の財産です。
    初級者に対しての講義と言っても過言じゃないと思っています。

    本当に助かっています!

    ありがとうございますm(__)m


引用返信 [メール受信/OFF] 削除キー/

<前のレス10件 | 次のレス10件>

スレッド内ページ移動 / << 0 | 1 | 2 | 3 >>

このスレッドに書きこむ

Mode/  Pass/

HOME HELP 新規作成 新着記事 ツリー表示 スレッド表示 トピック表示 ファイル一覧 検索 過去ログ

- Child Tree -
- Antispam Version -