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

《 桐質問以外の話題は、「のほか掲示板」からどうぞ 》
■ 24時間以内に作成されたスレッドは New で表示されます。
■ 24時間以内に更新されたスレッドは UpDate で表示されます。

記事リスト ( )内の数字はレス数
Nomal配列変数の扱いについて(10) | Nomal一括処理の絞込みについて(2) | Nomal繰り返しコマンドについて(9) | NomalファンクションキーがCTRLを押しながらでないとつかえない?(3) | Nomal指定の文字数を入力したとき自動でタブ(6) | Nomal一括処理について(13) | Nomal文字列変換について(3) | Nomal平均額の算出(4) | Nomal絞り込み 条件名 エラー KD1084:比較式の形式に誤りがあります(2) | Nomal変数自体の文字列変換(4) | Nomal中央値について(10) | Nomal数値型項目で入力の際数値以外のキーを受け付けない(20) | Nomal一括処理について(14) | Nomal数値の複写の「項目計算式」(3) | Nomal認知症検査(1) | Nomal絞り込み検索条件式(3) | Nomal軸単位の異なるデータを一つのグラフで表示させたい(4) | Nomal表のサイズが小さくなる。(6) | Nomal項目の値を変数に取り込むには(2) | Nomal桐10終了(12) | Nomal最新(直近)のデータだけを表示させたい(2) | Nomalレポートについて(12) | Nomal文字列の計算(12) | Nomal表整理の一括化(17) | Nomalwindows10の動作(8) | Nomal経過日を知りたい(5) | Nomal表引きについて(13) | Nomal超初心者です。桐の変数代入について教えて下さい。(2) | Nomal区分ごとに行で色を付けたい(4) | Nomal絞り込み式(5) | Nomal連番を入れたら、その日の年月を自動で入れたい(6) | Nomal併合の絞り込みについて(8) | Nomalライブラリが読み込まれない(1) | Nomal絞り込み:比較式での日時値絞り込みの相談(12) | Nomal常時「訂正」モードにしたい(20) | Nomal桐s-2024 LTへのバージョンアップ(16) | Nomalテキスト読み込み(3) | Nomal一括処理でテキストを選択したい(8) | Nomal課税、非課税(8) | Nomalビルド番号について(4) | Nomal12ヶ月分のレコードを一度に作成する方法について(5) | Nomal一括処理で集計したい(2) | Nomalハンドルとは?(31) | Nomal帳票印刷(7) | Nomalメール送信(9) | Nomal拡張子CSVで項目間をカンマで区切り書き出したい(32) | Nomal正か負かで区分を付けたい(4) | Nomal項目計算式にメモ(4) | Nomal連番を自動入力したい(8) | Nomal項目別 連番生産(9) | Nomalイベントでフォームをまとめて開く(8) | Nomal9000バイトの出力(4) | Nomal一括処理書き方(7) | Nomal印字コマンド(13) | Nomal状態表示について(3) | NomalTXTファイルからDATファイルに変更(4) | Nomalテーブルの項目を整理する際の影響確認(5) | Nomalフォームの閉じ方について(18) | Nomalレポートにつきまして(5) | Nomal【アイデア募集】スケジュール表示(2) |



■記事リスト / ▼下のスレッド
■15072 / 親記事)  中央値について
□投稿者/ キリマンジャロ -(2025/08/07(Thu) 12:51:48)
    WIN11、桐10S使用です
    いつもお世話になっております

    項目    データ型
    部品コード  文字列
    加工数   通貨


    表   部品コード    加工数

    1    1200      6000

    2    1200      7000

    3    1200      4000

    4    1200      10000


    とデータがあります。このデータから部品コードごとに、加工数の中央値を出したいと考えております。
    部品コードによって、レコードが奇数や偶数になっています。
    中央値を簡単に出す方法があれば教えていただけますでしょうか。
    よろしくお願いいたします。
      

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

▽[全レス10件(ResNo.6-10 表示)]
■15083 / ResNo.6)  Re[1]: 中央値について
□投稿者/ うにん -(2025/08/13(Wed) 17:57:54)
    文字列関数とか配列変数を使って1パスか2パスでできないかと思ったけど、文字長や要素数の制限が色々ありすぎて実際のデータには使えないかなあと思いました。
引用返信 [メール受信/OFF]
■15084 / ResNo.7)  Re[2]: 中央値について
□投稿者/ ONnoji -(2025/08/13(Wed) 20:40:46)
    2025/08/14(Thu) 21:10:24 編集(投稿者)
    2025/08/13(Wed) 21:05:07 編集(投稿者)

    > 文字列関数とか配列変数を使って1パスか2パスでできないかと思ったけど、
    > 文字長や要素数の制限が色々ありすぎて実際のデータには使えないかなあと思いました。

    ↑これいいヒントですね。(^^♪

     手続き実行 procedureName( "6000,7000,4000", &result )

    こんなイメージかなぁ〜と思いました。アハハハha

     ◇ ◇ ◇ ◇ ◇ ◇ ◇

    サンプルを作ってみました。

    数日を目途に削除しますのでダウンロードはお早めに願います。

    追記:2025-08-14

    新たに元データから併合:連結でデータを集計する方式のサンプルを用意しましたので、この投稿のサンプルは削除しました。(^^ok
       ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

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

    部品コード 加工数
    ----------------
    部品A  6000
    部品A  7000
    部品A  4000
    部品A  10000
    部品B  7000
    部品B  4000
    部品B  10000

    ■トレース

     :&dimMax : 4  &oddNumber : 0  &pcsList : 6000,7000,4000,10000
     :ソート前  1  &pcsListDim[ &i ] : 6000
     :ソート前  2  &pcsListDim[ &i ] : 7000
     :ソート前  3  &pcsListDim[ &i ] : 4000
     :ソート前  4  &pcsListDim[ &i ] : 10000
     :
     :ソート後  1  &pcsListDim[ &i ] : 4000
     :ソート後  2  &pcsListDim[ &i ] : 6000
     :ソート後  3  &pcsListDim[ &i ] : 7000
     :ソート後  4  &pcsListDim[ &i ] : 10000
     :
     :偶数  &dimMax : 4  &targetDimNumPrimary : 2  &targetDimNumSecondary : 3
     :&targetDimNumPrimary : 2  &targetDimNumSecondary : 3  &result : 6500 ← 中央値
     :                            ・・・・・・・・・・・・
     :&dimMax : 3  &oddNumber : 1  &pcsList : 7000,4000,10000
     :ソート前  1  &pcsListDim[ &i ] : 7000
     :ソート前  2  &pcsListDim[ &i ] : 4000
     :ソート前  3  &pcsListDim[ &i ] : 10000
     :
     :ソート後  1  &pcsListDim[ &i ] : 4000
     :ソート後  2  &pcsListDim[ &i ] : 7000
     :ソート後  3  &pcsListDim[ &i ] : 10000
     :
     :奇数  &dimMax : 3  &targetDimNum : 2  &result : 7000 ← 中央値
     :                     ・・・・・・・・・・・・


    ■test_中央値.kex

    名札  メイン



    手続き定義開始 cmd中央値を求めるClick( )
     変数宣言 自動,文字列{ &title = "cmd中央値を求めるClick( )" }
     変数宣言 自動,文字列{ &partsCode }
     変数宣言 自動,文字列{ &pcsList }
     変数宣言 自動,文字列{ &comma = #jis( #hex("2C") ) }
     変数宣言 自動,整数 { &multTblNum }

     多重化
     &multTblNum = #is表

     解除 *   /* 多重化した直後はすべて解除されていますが念のために */
     並べ替え { [部品コード]昇順 }

     ジャンプ 行番号 = 先頭行
     &partsCode = [部品コード]
     繰り返し ( .not #eof )

      &pcsList = &pcsList + #cond( &pcsList <> #u, &comma ) + #str( [加工数] )
      **トレース出力 _&pcsList

      ジャンプ 行番号 = 次行 /* これを忘れると無限ループになるよ */
      if ( &partsCode <> [部品コード] )
       **メッセージボックス &title, &partsCode + ":" + &pcsList, アイコン = i, ボタン指定 = 1

       手続き実行 prc中央値を求める( &partsCode, &pcsList )


       &partsCode = [部品コード]
       &pcsList  = #u
      end
     繰り返し終了

     終了 表 &multTblNum

    手続き定義終了

    手続き定義開始 prcSort(参照 数値 &dim[] )
     変数宣言 自動,数値{ &s, &fin, &n, &i, &numA, &numB }

     &n = #配列要素数( "dim" )
     &s = 2
     繰り返し

      &fin = &s
      &s  = &n
      繰り返し &i = &n, &fin, -1

       &numA = &dim[ &i ]    /* 数値の場合は &numA */
       &numB = &dim[ &i - 1 ]  /* 数値の場合は &numB */

       if ( &numA < &numB )   /* 数値の場合は &numA < &numB */
        &dim[ &i - 1 ] = &numA /* 数値の場合は &numA */
        &dim[ &i ]   = &numB /* 数値の場合は &numB */
        &s = &i
       end
      繰り返し終了

      if ( &s = &n )
       繰り返し中止
      end
     繰り返し終了

     **<参考書籍>
     **現代データ構造とプログラム技法 萩原宏・西原清一 著 オーム社刊 ISBN4-274-12831-8
    手続き定義終了

    手続き定義開始 prc中央値を求める( 文字列 &partsCode, 文字列 &pcsList )
     変数宣言 自動,文字列{ &title = "prc中央値を求める( )" }
     変数宣言 自動,文字列{ &comma = #jis( #hex("2C") ) }
     変数宣言 自動,整数 { &dimMax }
     変数宣言 自動,整数 { &oddNumber } /* 奇数ならば1 偶数ならば0 */
     変数宣言 自動,整数 { &i, &loop, &step = 1 }
     変数宣言 自動,整数 { &targetDimNum }
     変数宣言 自動,整数 { &targetDimNumPrimary, &targetDimNumSecondary }
     変数宣言 自動,数値 { &result }

     **メッセージボックス &title, &partsCode + ":" + &pcsList, アイコン = i, ボタン指定 = 1

     &dimMax = 1 + #文字数( &pcsList ) - #文字数( #文字置換( &pcsList, &comma, #u ) )
     &oddNumber = #mod( &dimMax, 2 )
     トレース出力 _&dimMax, "  ", _&oddNumber, "  ", _&pcsList

     変数宣言 自動,数値{ &pcsListDim[ &dimMax ] }
     &loop = &dimMax
     繰り返し &i = 1, &loop, &step
      &pcsListDim[ &i ] = #num( #対応文字列( &pcsList, &i ) )
      トレース出力 "ソート前", "  ", &i, "  ", _&pcsListDim[ &i ]
     繰り返し終了
     トレース出力 ""

     手続き実行 prcSort( &pcsListDim) /* 配列変数:&pcsListDim を昇順でソートする */

     &loop = &dimMax
     繰り返し &i = 1, &loop, &step
      トレース出力 "ソート後", "  ", &i, "  ", _&pcsListDim[ &i ]
     繰り返し終了
     トレース出力 ""

     if ( &oddNumber ) /* &oddNumber は1(イチ)または0(ゼロ)の論理値なので &oddNumber = 1 と書かなくて良い */

      ** 奇数
      &targetDimNum = #切り上げ( &dimMax / 2, 0 )
      &result    = &pcsListDim[ &targetDimNum ]
      トレース出力 "奇数", "  ", _&dimMax, "  ", _&targetDimNum, "  ", _&result
      トレース出力 ""

     else

      ** 偶数
      &targetDimNumPrimary  = &dimMax / 2
      &targetDimNumSecondary = &targetDimNumPrimary + 1
      &result    = ( &pcsListDim[ &targetDimNumPrimary ] + &pcsListDim[ &targetDimNumSecondary ] ) / 2
      トレース出力 "偶数", "  ", _&dimMax, "  ", _&targetDimNumPrimary, "  ", _&targetDimNumSecondary
      トレース出力 _&targetDimNumPrimary, "  ", _&targetDimNumSecondary, "  ", _&result
      トレース出力 ""
     end

     メッセージボックス &title, &partsCode + "の中央値:" + #str( &result ), アイコン = i, ボタン指定 = 1

    手続き定義終了


    p.s.

    なお、文字列型の配列変数のソートについては拙作webページをご覧ください。

    コチラ
     ↓
    桐の釣魚大全のトップ > フォームアプリケーション教書 第2部
    https://silicon7565.cloudfree.jp/guide/guide_Part2.htm#section28-1
    28.1 配列変数のソート
    ■配列変数をソートする方法 ― 桐のイベント道場 かっこうログ 2002年06月03日より

引用返信 [メール受信/OFF]
■15085 / ResNo.8)  Re[3]: 中央値について
□投稿者/ ONnoji -(2025/08/13(Wed) 23:55:07)
    そうそう、値が1つだったらどうするのかな??

    それでも[中央値]と呼ぶのでしょうかね。アハハハ。

    こんな感じでよさそうですが?・・・

     ◇ ◇ ◇ ◇ ◇

    手続き定義開始 prc中央値を求める( 文字列 &partsCode, 文字列 &pcsList )
     変数宣言 自動,文字列{ &title = "prc中央値を求める( )" }
     変数宣言 自動,文字列{ &comma = #jis( #hex("2C") ) }
     変数宣言 自動,整数 { &dimMax }
     変数宣言 自動,整数 { &oddNumber } /* 奇数ならば1 偶数ならば0 */
     変数宣言 自動,整数 { &i, &loop, &step = 1 }
     変数宣言 自動,整数 { &targetDimNum }
     変数宣言 自動,整数 { &targetDimNumPrimary, &targetDimNumSecondary }
     変数宣言 自動,数値 { &result }

     **メッセージボックス &title, &partsCode + ":" + &pcsList, アイコン = i, ボタン指定 = 1

     &dimMax = 1 + #文字数( &pcsList ) - #文字数( #文字置換( &pcsList, &comma, #u ) )
     &oddNumber = #mod( &dimMax, 2 )
     トレース出力 _&dimMax, "  ", _&oddNumber, "  ", _&pcsList

     変数宣言 自動,数値{ &pcsListDim[ &dimMax ] }
     &loop = &dimMax
     繰り返し &i = 1, &loop, &step
      &pcsListDim[ &i ] = #num( #対応文字列( &pcsList, &i ) )
      トレース出力 "ソート前", "  ", &i, "  ", _&pcsListDim[ &i ]
     繰り返し終了
     トレース出力 ""

     手続き実行 prcSort( &pcsListDim) /* 配列変数:&pcsListDim を昇順でソートする */

     &loop = &dimMax
     繰り返し &i = 1, &loop, &step
      トレース出力 "ソート後", "  ", &i, "  ", _&pcsListDim[ &i ]
     繰り返し終了
     トレース出力 ""

     if ( &oddNumber ) /* &oddNumber は1(イチ)または0(ゼロ)の論理値なので &oddNumber = 1 と書かなくて良い */

      if ( &dimMax > 1 )

       ** 奇数
       &targetDimNum = #切り上げ( &dimMax / 2, 0 )
       &result    = &pcsListDim[ &targetDimNum ]
       トレース出力 "奇数", "  ", _&dimMax, "  ", _&targetDimNum, "  ", _&result
       トレース出力 ""

      else

       &result    = &pcsListDim[ 1 ]
       トレース出力 "奇数", "  ", _&dimMax, "  ", _&targetDimNum, "  ", _&result
       トレース出力 ""

      end

     else

      ** 偶数
      &targetDimNumPrimary  = &dimMax / 2
      &targetDimNumSecondary = &targetDimNumPrimary + 1
      &result    = ( &pcsListDim[ &targetDimNumPrimary ] + &pcsListDim[ &targetDimNumSecondary ] ) / 2
      トレース出力 "偶数", "  ", _&dimMax, "  ", _&targetDimNumPrimary, "  ", _&targetDimNumSecondary
      トレース出力 _&targetDimNumPrimary, "  ", _&targetDimNumSecondary, "  ", _&result
      トレース出力 ""
     end

     メッセージボックス &title, &partsCode + "の中央値:" + #str( &result ), アイコン = i, ボタン指定 = 1

    手続き定義終了


引用返信 [メール受信/OFF]
■15086 / ResNo.9)  Re[4]: 中央値について
□投稿者/ ONnoji -(2025/08/14(Thu) 10:32:04)
    2025/08/17(Sun) 15:40:32 編集(投稿者)

    > 手続き実行 procedureName( "6000,7000,4000", &result )

    このイメージで、併合の[連結]を使って加工数リストを作成しました。(^^♪

    添付ファイルがあります。

    解凍すると4つのファイルがあります

     test2_参照表.tbx
     test2_中央値.kex
     test2_中央値.tbx
     test2_中央値.wfx ← コマンドボタンを実行してください

    数日を目途に削除しますのでダウンロードはお早めに願います。

     ◇ ◇ ◇ ◇

    ■ test2_参照表.tbx

    項目番号 項目名  データ型 項目計算式
    1    部品コード 文字列  
    2    加工数  数値  
    3    作業用  文字列  "," + #str( [加工数] )

    部品コード 加工数  作業用
    --------------------------
    部品A   6000  ,6000
    部品A   7000  ,7000
    部品A   4000  ,4000
    部品A   10000  ,10000
    部品B   7000  ,7000
    部品B   4000  ,4000
    部品B   10000  ,10000
    部品C    500  ,500


    ■ test2_中央値.tbx

    項目番号 項目名   データ型 項目計算式
    1    部品コード  文字列  
    2    連結リスト 文字列  
    3    中央値   数値

    部品コード 連結リスト       中央値
    ----------------------------------------
    部品A  ,6000,7000,4000,10000   6500
    部品B  ,7000,4000,10000      7000
    部品C  ,500            500

    ※このデータはフォームの[中央値を求める]ボタンを実行した結果の値

    ■ test2_中央値.wfx

    フォーム
     ├ ファミリ
     ├ ワークスペース
     ├ フォーム操作バー
     ├ フォームヘッダ部
     │ ├ cmd中央値を求める ← コマンドボタンを実行してください
     │ ├ a
     │ ├ lbl部品コード
     │ ├ lbl中央値
     │ └ lbl連結リスト
     └ フォーム明細部
       ├ 行セレクタ
       ├ txt部品コード
       ├ txt中央値
       └ txt連結リスト

     オブジェクト名: cmd中央値を求める
     標題     : 中央値を求める

      機能名   機能パラメータリスト
     1 表示
     2 手続き実行 cmd中央値を求めるClick
     3 なし
     4 なし


    ■ test2_中央値.kex

    名札  メイン



    手続き定義開始 prcSort(参照 数値 &dim[] )
     変数宣言 自動,数値{ &s, &fin, &n, &i, &numA, &numB }

     &n = #配列要素数( "dim" )
     &s = 2
     繰り返し

      &fin = &s
      &s  = &n
      繰り返し &i = &n, &fin, -1

       &numA = &dim[ &i ]    /* 数値の場合は &numA */
       &numB = &dim[ &i - 1 ]  /* 数値の場合は &numB */

       if ( &numA < &numB )   /* 数値の場合は &numA < &numB */
        &dim[ &i - 1 ] = &numA /* 数値の場合は &numA */
        &dim[ &i ]   = &numB /* 数値の場合は &numB */
        &s = &i
       end
      繰り返し終了

      if ( &s = &n )
       繰り返し中止
      end
     繰り返し終了

     **<参考書籍>
     **現代データ構造とプログラム技法 萩原宏・西原清一 著 オーム社刊 ISBN4-274-12831-8
    手続き定義終了

    手続き定義開始 cmd中央値を求めるClick( )
     変数宣言 自動,文字列{ &title = "cmd中央値を求めるClick( )" }
     変数宣言 自動,文字列{ &targetTbl }
     変数宣言 自動,整数 { &status }

     解除 *
     行削除 *, 圧縮

     &targetTbl = #一括パス名 + "test2_参照表.tbx"
     併合  &targetTbl, 両方, 編集表 = する, 終了状態 = &status, { [部品コード]照合[部品コード],[連結リスト]連結[作業用] }
     **戻り値 説明
     ** 1   正常に終了した
     ** 0   共有違反以外のエラーが発生した
     **-2   他の利用者が置換や併合などの処理を実行中(ファイル排他)
     トレース出力 _&status, "  ", _&targetTbl

     if ( &status = 1 )
      手続き実行 prc中央値を求める( )
     else
      メッセージボックス &title, "[併合]コマンドの実行に失敗しました:終了状態 = " + #str( &status ), アイコン = e, ボタン指定 = 1
     end

    手続き定義終了

    手続き定義開始 prc中央値を求める( )
     変数宣言 自動,文字列{ &title = "prc中央値を求める( )" }
     変数宣言 自動,数値 { &result }

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

      手続き実行 prc中央値の計算( [部品コード], #sstr([連結リスト], 2 ), &result ) /* #sstr([連結リスト], 2 ) は、先頭のコンマ(,)が不要のため */
      行訂正 [中央値] = &result

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

    手続き定義終了

    手続き定義開始 prc中央値の計算( 文字列 &partsCode, 文字列 &pcsList, 参照 数値 &result )
     変数宣言 自動,文字列{ &title = "prc中央値の計算( )" }
     変数宣言 自動,文字列{ &comma = #jis( #hex("2C") ) }
     変数宣言 自動,整数 { &dimMax }
     変数宣言 自動,整数 { &oddNumber } /* 奇数ならば1 偶数ならば0 */
     変数宣言 自動,整数 { &i, &loop, &step = 1 }
     変数宣言 自動,整数 { &targetDimNum }
     変数宣言 自動,整数 { &targetDimNumPrimary, &targetDimNumSecondary }

     **メッセージボックス &title, &partsCode + ":" + &pcsList, アイコン = i, ボタン指定 = 1

     &dimMax = 1 + #文字数( &pcsList ) - #文字数( #文字置換( &pcsList, &comma, #u ) )
     &oddNumber = #mod( &dimMax, 2 )
     トレース出力 _&dimMax, "  ", _&oddNumber, "  ", _&pcsList

     変数宣言 自動,数値{ &pcsListDim[ &dimMax ] }
     &loop = &dimMax
     繰り返し &i = 1, &loop, &step
      &pcsListDim[ &i ] = #num( #対応文字列( &pcsList, &i ) )
      トレース出力 "ソート前", "  ", &i, "  ", _&pcsListDim[ &i ]
     繰り返し終了
     トレース出力 ""

     手続き実行 prcSort( &pcsListDim) /* 配列変数:&pcsListDim を昇順でソートする */

     &loop = &dimMax
     繰り返し &i = 1, &loop, &step
      トレース出力 "ソート後", "  ", &i, "  ", _&pcsListDim[ &i ]
     繰り返し終了
     トレース出力 ""

     if ( &oddNumber ) /* &oddNumber は1(イチ)または0(ゼロ)の論理値なので &oddNumber = 1 と書かなくて良い */

      ** 奇数
      if ( &dimMax > 1 )

       &targetDimNum = #切り上げ( &dimMax / 2, 0 )
       &result    = &pcsListDim[ &targetDimNum ]
       トレース出力 "奇数", "  ", _&dimMax, "  ", _&targetDimNum, "  ", _&result
       トレース出力 ""

      else

       &result    = &pcsListDim[ 1 ]
       トレース出力 "奇数", "  ", _&dimMax, "  ", _&targetDimNum, "  ", _&result
       トレース出力 ""

      end

     else

      ** 偶数
      &targetDimNumPrimary  = &dimMax / 2
      &targetDimNumSecondary = &targetDimNumPrimary + 1
      &result    = ( &pcsListDim[ &targetDimNumPrimary ] + &pcsListDim[ &targetDimNumSecondary ] ) / 2
      トレース出力 "偶数", "  ", _&dimMax, "  ", _&targetDimNumPrimary, "  ", _&targetDimNumSecondary
      トレース出力 _&targetDimNumPrimary, "  ", _&targetDimNumSecondary, "  ", _&result
      トレース出力 ""
     end

     メッセージボックス &title, &partsCode + "の中央値:" + #str( &result ), アイコン = i, ボタン指定 = 1

    手続き定義終了

    p.s.

    なお、文字列型の配列変数のソートについては拙作webページをご覧ください。

    コチラ
     ↓
    桐の釣魚大全のトップ > フォームアプリケーション教書 第2部
    https://silicon7565.cloudfree.jp/guide/guide_Part2.htm#section28-1
    28.1 配列変数のソート
    ■配列変数をソートする方法 ― 桐のイベント道場 かっこうログ 2002年06月03日より


引用返信 [メール受信/OFF]
■15087 / ResNo.10)  Re[5]: 中央値について
□投稿者/ キリマンジャロ -(2025/08/20(Wed) 13:41:26)
    うにんさん、ONnojiさんありがとうございます。

    アドバイスを頂いて、中央値の値を求めることが簡単になりデータの集計がかなり楽になりました。
    また、質問させていただくかと思いますが、よろしくお願いします!
解決済み!
引用返信 [メール受信/OFF]

■記事リスト / レス記事表示 → [親記事-9] [10-10]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■15017 / 親記事)  数値型項目で入力の際数値以外のキーを受け付けない
□投稿者/ まさやん -(2025/07/09(Wed) 15:00:38)
    2025/07/09(Wed) 15:24:55 編集(投稿者)


    いつも お世話になっております

    桐9s Win11 イベント処理を行っています

    フォーム入力時に
    品名や 備考 などの 文字列型項目での入力では
    全キーボード入力を 拒まないのですが

    数値型項目入力時に
    数字キー以外の キーを受け付けないという 方法はできますか?

    イベント実行中 数字入力だけの (例えば 単価 とか 数量など)際に
    間違って 英字キー 押して 間違ってエンターキー押すと
    メッセが出て その先の 処理を受け付けてくれません

    そのための 回避策を探していますが
    そのようなことができるかどうかもわかりませんが

    宜しくお願い致します。

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

▽[全レス20件(ResNo.16-20 表示)]
■15037 / ResNo.16)  Re[11]: 数値型項目で入力の際数値以外のキーを受け付けない
□投稿者/ ONnoji -(2025/07/10(Thu) 20:50:28)
    2025/07/11(Fri) 08:51:12 編集(投稿者)

    > 論より証拠。
    > サンプルを作りました。
    > INF_Framework をダウンロードしたフォルダに解凍してください。

    > 先日 ダウンロードコーナーから ダウンロードしたのがありまして
    > その中のと同じのかと思われますので 試してみます
      ↑
    そのフォルダに解凍する

     または

    ダウンロードコーナーからダウンロードしたファイルが存在するフォルダの

    ・INF_Framework.cmd
    ・IPS_Framework.cmd

    この2つのファイルを VK_使用例.wfm/kev があるフォルダにコピーしてください

    p.s.

    > また AKOMEさんのと もひとつのURL 見てみました
    > 私のレベルでは まだ 解釈不足です

    そもそも初めて経験するインタフェースなのですから誰でも最初から理解・解釈出来ないのが普通ですよ。
        ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

    まず、考えずに AKomeさんの例を試してみることです。
       ・・・・・・・・・・・・・・・・・・・・・

    例えば、表示モードで[/][−]キーが押された時に現れる「スラッシュ・メニュー」を止めるとかなど・・・

    そうすれば、なるほど!と分かってくるハズですよ。

    ただ考えるのは何もしないのと同じです。(^^ゞ

    p.p.s.

    老婆心ながら・・・(^^ゞ

    フレームワークというものは内容を理解する必要は無いのです。
    ・・・・・・・・・・・・・・・・・・・・・・・・・

    それよりも、使い方を理解する事が重要なんです。
          ・・・・・・・・・・・・・・・・

    フレームワークの内容に関心が無くて、フレームワークの使い方に関心がある人はソフトウェア開発に適性があります。

    そういう人はフレームワークを利用して、短時間に[フォーム+イベント処理]アプリケーションを作っています。

    それに対して、DOS桐からのベテラン組の人達は、長年一括処理、つまり[フロー駆動型]を使っていたので、

    [フロー]=[コーディング]=プログラミングと認識しているようです。

    つまり、全部自分でプログラムを書かないと気が済まない人が多いように思います。

    勿論、その方が気分が良い人も居ることでしょう。

    しかし、それではいつまでたっても[イベント駆動]のプログラミングを効率よく構築出来ないと思いますよ。
                    ・・・・・・・・・・・・・・・・・・・・・・・

    既に出来上がっている車輪=フレームワークを利用する方が、車輪を再発明するよりも効率がよいのですから・・・

    <用語>

    車輪の再発明 出典: フリー百科事典『ウィキペディア(Wikipedia)』

     車輪の再発明(しゃりんのさいはつめい、英: reinventing the wheel)とは、
    「広く受け入れられ確立されている技術や解決法を(知らずに、または意図的に無視して)再び一から作ること」を指すための慣用句。
    誰でも直観的にその意味が分かるように、車輪という誰でも知っていて古くから広く使われている既存の技術を比喩の題材として使った慣用表現で、世界中で使われている。

    再利用すべき「車輪」

     IT業界において、再発明するのではなく再利用すべき「車輪」の例としては以下のようなものがある[1]。

    ・ライブラリやフレームワーク

      ドキュメントが整備されていることや日々メンテナンスされてバグが無くなっていることが必要。
     使用するライブラリやフレームワークが広く知られている場合には、
     開発経験をもった人をアサインすることで引き継ぎなどもスムーズに行くというメリットもある。



引用返信 [メール受信/OFF]
■15038 / ResNo.17)  Re[12]: 数値型項目で入力の際数値以外のキーを受け付けない
□投稿者/ ONnoji -(2025/07/10(Thu) 23:53:47)
    2025/07/11(Fri) 07:53:55 編集(投稿者)

    拙作:VK_Framework で試したところ当初の予想よりも簡単に[数値以外のキーを受け付けない]が実現できました。(^^ゞ

    簡単なレビューを以下にご報告します。

     ◇ ◇ ◇ ◇ ◇ ◇

    【イベントハンドラに直接記述する】

    手続き定義開始 フォーム::キーダウン(長整数 &仮想キーコード,長整数 &スキャンコード,長整数 &フラグ,参照 長整数 &処理中止)

     メソッド呼び出し @フォーム.更新モード取得(&更新モード)
     メソッド呼び出し @フォーム.フォーカスオブジェクト取得(&STR)
    ┌if (&更新モード≠0)
    │┌if ((&仮想キーコード>=65 .and &仮想キーコード<=90 .and &仮想キーコード≠13) .or (&仮想キーコード>=106 .and &仮想キーコード≠110)
    ││ &比較式=#項目属性(#項目番号(#部分列(&STR,#IS全角(&STR,0))),2)
    ││ 条件 (&比較式≠"文字列") &処理中止=1
    ││ 条件 (&比較式≠"文字列") メッセージボックス "","数字キーのみの入力です",ボタン=1
    │└end
    └end

    手続き定義終了

    上↑と下↓

    【VK_Framework を利用する】

    手続き定義開始 txtA::入力前(参照 文字列 &編集文字列)

     手続き実行 VKprcEventKeyDownON( )
     手続き実行 VKprcKeyON( )
     手続き実行 VKprcKeySet( "key", 1, "項目訂正,訂正", "手続き実行 prcTest( &VKmChr, &処理中止 )" )

    手続き定義終了を

    手続き定義開始 txtA::入力後(参照 文字列 &編集文字列,長整数 &モード,参照 長整数 &入力継続)

     手続き実行 VKprcEventKeyDownOFF( )         /* キーダウンイベントをオフ */
     手続き実行 VKprcKeyOFF( )              /* 実行禁止         */
     手続き実行 VKprcKeyClear( "key", "項目訂正,訂正" ) /* クリア          */

    手続き定義終了

    手続き定義開始 prcTest( 文字列 &key, 参照 長整数 &処理中止 )
     変数宣言 自動,文字列{ &keyList = "0,1,2,3,4,5,6,7,8,9,+,-" } /* 必要ならば小数点のドットも加える */

     トレース出力 _( #対応番号( &keyList, &key ) <> 0 )
     if ( #対応番号( &keyList, &key ) <> 0 )
      &処理中止 = 0
     end

     トレース出力 _&key, "     ", _&処理中止
    手続き定義終了

    比べてみると、

    拙作:VK_Framework を利用する場合には

    ・65,90 といった恣意的な仮想キーコードに振り回されなくて分かり易い
     ・・・・・・・・・・・・・・・・・・

    ・[Enter][Tab][Esc]の各キーに対して透過的である

    ・更新モードによって実行内容を指定できる

    ・分かり易いから改造が簡単に出来る
     ・・・・・・・

    というメリットがあることに気が付く事でしょう。

    なお、VK_Framework は Thin INF_Framework / オートINF_Framework 等すべての INF_Framework で使用できます。

    p.s.

    >>なお、この方法でキーをマスクすると、キーボードが壊れたんじゃないかと不審に思われるかもしれませんね。
    >>                  ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
    >>なので、「やり過ぎ感がハンパ無しで満載」ですね。 ※何事もほどほどがいいですよ。

    これは杞憂、つまり「とりこし苦労」でしたね。

    [入力後]イベントハンドラで不要文字を取り除くよりも、ストレートでパフォーマンスも悪く無いでした。アハハハha

     ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇

    余談ながらトレースの結果です。


    ┌when 手続き"txtA::入力前("0")"を実行開始しました

    │┌when 手続き"VKprcEventKeyDownON( )"を実行開始しました
    │└end

    │┌when 手続き"VKprcKeyON( )"を実行開始しました
    │└end

    │┌when 手続き"VKprcKeySet("key",1,"項目訂正,訂正","手続き実行 prcTest( &VKmChr, &処理中止 )")"を実行開始しました
    │└end

    └end

    ┌when 手続き"フォーム::キーダウン(97,79,0,0)"を実行開始しました

    │┌when 手続き"VKprcEventKeyEval(97,79,0,0)"を実行開始しました
    ││
    ││┌when 手続き"prcTest("1",1)"を実行開始しました
    │││
    │││ :( #対応番号( &keyList, &key ) <> 0 ) : 1
    │││ :&key : 1     &処理中止 : 0
    │││
    ││└end
    ││
    │└end

    └end

    ┌when 手続き"フォーム::キーダウン(98,80,0,0)"を実行開始しました

    │┌when 手続き"VKprcEventKeyEval(98,80,0,0)"を実行開始しました
    ││
    ││┌when 手続き"prcTest("2",1)"を実行開始しました
    │││
    │││ :( #対応番号( &keyList, &key ) <> 0 ) : 1
    │││ :&key : 2     &処理中止 : 0
    │││
    ││└end
    ││
    │└end

    └end

    ┌when 手続き"フォーム::キーダウン(99,81,0,0)"を実行開始しました

    │┌when 手続き"VKprcEventKeyEval(99,81,0,0)"を実行開始しました
    ││
    ││┌when 手続き"prcTest("3",1)"を実行開始しました
    │││
    │││ :( #対応番号( &keyList, &key ) <> 0 ) : 1
    │││ :&key : 3     &処理中止 : 0
    │││
    ││└end
    ││
    │└end

    └end

    ┌when 手続き"フォーム::キーダウン(13,28,0,0)"を実行開始しました

    │┌when 手続き"VKprcEventKeyEval(13,28,0,0)"を実行開始しました
    ││
    │└end

    └end

    ┌when 手続き"txtA::入力後("123",1,0)"を実行開始しました

    │┌when 手続き"VKprcEventKeyDownOFF( )"を実行開始しました
    ││
    │└end

    │┌when 手続き"VKprcKeyOFF( )"を実行開始しました
    │└end

    │┌when 手続き"VKprcKeyClear("key","項目訂正,訂正")"を実行開始しました
    │└end

    └end

引用返信 [メール受信/OFF]
■15079 / ResNo.18)  Re[2]: 数値型項目で入力の際数値以外のキーを受け付けない
□投稿者/ ONnoji -(2025/08/09(Sat) 14:53:47)
    2025/08/09(Sat) 18:57:01 編集(投稿者)

    すでに解決済との事ですが・・・

    当初から、私の直感では、使用できるキーを数字と正負記号に制限するのは、解決策の本命には思えませんでした。
         ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

    結論としては、[キーダウン]イベントハンドラは必要ないです。

    なぜならば、[入力後]イベントハンドラが呼び出す一般手続きですべて処理できるからです。

    結局、先回りして数字と正負記号以外の文字キーをブロックしても、ほとんど無意味という事なんです。
       ・・・・・・・・・・・・・・・・・・・・・・・・・・・・◎◎◎◎◎◎◎・・・・・・・・

    つまり、問題解決の本質部分は、[キーダウン]イベントハンドラにあるのではなくて、[入力後]イベントハンドラにあるということです。(^^ok

    ということで、[入力後]イベントハンドラの工夫次第ということで解決になります。ガッハハハha (^^♪

    今回の添付ファイルには、拙作:INF_Framework を使用していません。

    普通にフォームを開けば実行できますよ。

    なお、サンプルは数日を目途に削除しますので、ダウンロードはお早めに願います

    <参考>

    名札  メイン



    手続き定義開始 txt数値::入力後(参照 文字列 &編集文字列,長整数 &モード,参照 長整数 &入力継続)

     手続き実行 prc数値の入力後イベント処理( &this, &編集文字列,&モード,&入力継続 )

    手続き定義終了

    手続き定義開始 txt整数::入力後(参照 文字列 &編集文字列,長整数 &モード,参照 長整数 &入力継続)

     手続き実行 prc数値の入力後イベント処理( &this, &編集文字列,&モード,&入力継続 )

    手続き定義終了

    手続き定義開始 txt長整数::入力後(参照 文字列 &編集文字列,長整数 &モード,参照 長整数 &入力継続)

     手続き実行 prc数値の入力後イベント処理( &this, &編集文字列,&モード,&入力継続 )

    手続き定義終了

    手続き定義開始 txt通貨::入力後(参照 文字列 &編集文字列,長整数 &モード,参照 長整数 &入力継続)

     手続き実行 prc数値の入力後イベント処理( &this, &編集文字列,&モード,&入力継続 )

    手続き定義終了

    手続き定義開始 INFprcMsgPause( 文字列 &icon, 文字列 &title, 文字列 &msg )
     変数宣言 自動,文字列{ &iconList = "i,?,!,e" } /* 半角コンマで区切った文字列リスト */
     変数宣言 自動,文字列{ &macro }
     変数宣言 自動,整数 { &at }

     &icon = #半角( #lc( #sstr( &icon, 1, 1 ) ) ) /* &icon はこの手続きの引数 */
     &at = #対応番号( &iconList, &icon )

     &macro = "メッセージボックス &title, &msg" + #cond( &at, ", アイコン = " + &icon ) + ", ボタン指定 = 1, 制御文字展開 = する"
     コマンド &macro

    手続き定義終了

    手続き定義開始 prc数値の入力後イベント処理(文字列 &objectName, 参照 文字列 &編集文字列,長整数 &モード,参照 長整数 &入力継続)
     変数宣言 自動,文字列{ &icon, &title = "prc数値の入力後イベント処理( )", &msg }
     変数宣言 自動,文字列{ &string }
     変数宣言 自動,文字列{ &dataType }
     変数宣言 自動,文字列{ &source }
     変数宣言 自動,文字列{ &dataTypeList = "整数,長整数,数値,通貨,実数" }
     変数宣言 自動,数値 { &num }
     変数宣言 自動,数値 { &mod }
     変数宣言 自動,整数 { &isError = 0 }

     オブジェクト操作 &objectName{ &dataType = データ型, &source = ソース }

     if ( #対応番号( &dataTypeList, &dataType ) <> 0 )

      &string = &編集文字列
      &string = #str( #num( &string ) )

      &num = #未定義値変換( #num( &string ), 0 )
      &mod = #mod( &num, 1 )

      if ( &dataType = "整数" .or &dataType = "長整数" )

       if ( &mod <> 0 )

        &msg = "このテキストのソースは[" + &dataType + "]なので、小数点以下の数値は切り捨てられます"
        &msg = &msg + "\n\n⇒ " + &string
        &icon = "!"
        手続き実行 INFprcMsgPause( &icon, &title, &msg )
        &isError = 1
       end

       if ( ( &dataType = "整数" .and ( &num < -32768 .or &num > 32767 ) ) .or ( &dataType = "長整数" .and ( &num < -2147483648 .or &num > 2147483647 ) ) )

        メソッド呼び出し &this.編集選択位置設定( 1 ,-1 )

        &msg =      "このテキストのソースは[" + &dataType + "型]なので、"
        条件 ( &dataType = "整数"  ) &msg = &msg + "\n\n-32768 〜 32767 の範囲外の整数は入力できません"
        条件 ( &dataType = "長整数" ) &msg = &msg + "\n\n-2147483648 〜 2147483647 の範囲外の整数は入力できません""
        &msg = &msg + "\n\n⇒ " + &string
        **&msg = &msg + "\n\nお手数ですが"
        &msg = &msg + "\n\n・値を削除する"
        &msg = &msg + "\n  または"
        &msg = &msg + "\n・範囲内の値を入力してください"
        &icon   = "e"
        手続き実行 INFprcMsgPause( &icon, &title, &msg )

        &isError = 1
        &入力継続 = 1
       end
      end

      &編集文字列 = &string

     end

    手続き定義終了

引用返信 [メール受信/OFF]
■15080 / ResNo.19)  Re[3]: 数値型項目で入力の際数値以外のキーを受け付けない
□投稿者/ まさやん -(2025/08/09(Sat) 17:21:53)
    2025/08/09(Sat) 17:22:13 編集(投稿者)

    > 当初から、私の直感では、使用できるキーを数字と正負記号に制限するのは、解決策の本命には思えませんでした。
    > 結論としては、[キーダウン]イベントハンドラは必要ないです。
    >
    > なぜならば、[入力後]イベントハンドラが呼び出す一般手続きですべて処理できるからです。
    >
    > 結局、先回りして数字と正負記号以外の文字キーをブロックしても、ほとんど無意味という事なんです。
    >    ・・・・・・・・・・・・・・・・・・・・・・・・・・・・◎◎◎◎◎◎◎・・・・・・・・
    >
    > つまり、問題解決の本質部分は、[キーダウン]イベントハンドラにあるのではなくて、[入力後]イベントハンドラにあるということです。(^^ok
    >


    サンプルありがとうございました

    確かにそうですね ありがとうございました

    先日の投稿で 勝手にお名前出してすみませんでした(×_×)
引用返信 [メール受信/OFF]
■15081 / ResNo.20)  Re[3]: 数値型項目で入力の際数値以外のキーを受け付けない
□投稿者/ まさやん -(2025/08/09(Sat) 18:31:34)

    >   &string = #str( #num( &string ) )

    考えてみれば

    簡単に言うと

     上のコマンドを 入力後イベントで処理すればいいっていうことなんですね

    入力後イベント の チェックマーク入れなかったので
    桐からのメッセが出て それ以降のイベントが 走らなかったので
    その対処策を 考えた次第です


    対処策の 方法が 入力後イベント走らせたほうが 正解だったのと
    自然な成り行きですもんね

    確かに 今まで
    数字と数字以外の混ざった データを

    #num(&〇〇) で

    数値だけになってました そうでした   ありがとうございます。
引用返信 [メール受信/OFF]

■記事リスト / レス記事表示 → [親記事-9] [10-19] [20-20]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■15056 / 親記事)  一括処理について
□投稿者/ キリマンジャロ -(2025/08/04(Mon) 11:09:50)
    WIN11、桐10S使用です
    いつもお世話になっております
    表1
    項目名 工NO 整数
    表2
    項目名 工NO1 整数

    現在の表1:工NOという項目があり、値が 1、2、3 などが入っている。
    別の表2:工NO1、工NO2、工NO3 という項目がある。

    目標:一括処理にて、もし工NOが1なら、別の表2の工NO1項目にデータを置換(上書き)したい。工NOが2なら、別のテーブルの工NO2項目に置換したい、というように、工NOの値によって置換先の項目を切り替えたい。



    ifを使うと長くなりそうなのと、追加の項目があった場合、表+一括処理の変更もしなければいけないので悩んでおります。

    お忙しいところ恐縮ですがよろしくお願いします。
引用返信 [メール受信/OFF]

▽[全レス14件(ResNo.10-14 表示)]
■15067 / ResNo.10)  Re[1]: 一括処理について
□投稿者/ 尾形 -(2025/08/06(Wed) 06:25:04)
    どうも、こんにちは

    参考になるか分かりませんが
    #表引き2
    という関数があります


引用返信 [メール受信/OFF]
■15068 / ResNo.11)  Re[2]: 一括処理について
□投稿者/ 尾形 -(2025/08/06(Wed) 06:37:18)
    ごめんなさい

    逆パターンみたいですね
    使えないですね


引用返信 [メール受信/OFF]
■15069 / ResNo.12)  Re[4]: 一括処理について
□投稿者/ まさやん -(2025/08/06(Wed) 17:00:36)
    > 変数宣言 共通,整数{&項目番号}
    > 変数宣言 共通,数値{&番号データ,&deta}
    > 変数宣言 共通,文字列{&項目名,&行程名}   /*(&項目名は 文字列かな)
    >
    >
    > 表 "表1"
    > 表 "表2"
    >
    > 繰り返し ( .not #終端行)
    > 編集表 "表1"
    >     &番号データ=[工NO],&項目名="工NO"+#文字列(&番号データ),&キーコード=[キーコード],&行程名=[行程名]
    >     
    > 編集表 "表2"
    >     &項目番号=#項目番号(&項目名)
    >     if (&項目番号="")
    > 項目属性変更 追加{&項目名,文字列}  /*(数値型か文字列型か目的にあわせて設定してください)
    >
    >          &項目番号=#項目番号(&項目名)
    >
    >          検索 [キーコード]=&キーコード
    >
    >         if (#終端行)
    >
    >            行追加 [キーコード]=&キーコード,&項目番号=&行程名
    >         else
    >            行訂正 &項目番号=&行程名
    >
    >            *&deta=#項目属性(&項目番号,0) ←数値型の場合 文字列の場合は不要
    >            *(数値型の場合は  行訂正 &項目番号=&deta+&▲)
    >         end
    >     else
    >         検索 [キーコード]=&キーコード
    >
    >         if (#終端行)
    >
    >            行追加 [キーコード]=&キーコード,&項目番号=&行程名
    >         else
    >
    >            * &deta=#項目属性(&項目番号,0) ←数値型の場合 数値型だったら&項目番号=&deta+&▲ 文字列の場合は不要)
    >            行訂正 &項目番号=&行程名   /*←文字列
    >  
    >         end
    >     end
    > 編集表 "表1"
    >     ジャンプ 行番号=+1
    > 繰り返し終了
    >

    のコマンドが 共通の箇所がありましたので

    変数宣言 共通,整数{&項目番号}
    変数宣言 共通,数値{&番号データ,&deta}
    変数宣言 共通,文字列{&項目名,&行程名}   /*(&項目名は 文字列かな)


    表 "表1"
    表 "表2"

    繰り返し ( .not #終端行)
    編集表 "表1"
        &番号データ=[工NO],&項目名="工NO"+#文字列(&番号データ),&キーコード=[キーコード],&行程名=[行程名]
        
    編集表 "表2"
        &項目番号=#項目番号(&項目名)
        if (&項目番号="")
            項目属性変更 追加{&項目名,文字列}  /*(数値型か文字列型か目的にあわせて設定してください)

             &項目番号=#項目番号(&項目名)
        end


             検索 [キーコード]=&キーコード

            if (#終端行)

               行追加 [キーコード]=&キーコード,&項目番号=&行程名
            else
               行訂正 &項目番号=&行程名

               *&deta=#項目属性(&項目番号,0) ←数値型の場合 文字列の場合は不要
               *(数値型の場合は  行訂正 &項目番号=&deta+&▲)
            end

    編集表 "表1"
        ジャンプ 行番号=+1
    繰り返し終了


    と 同じ事ですね
引用返信 [メール受信/OFF]
■15070 / ResNo.13)  Re[6]: 一括処理について
□投稿者/ ONnoji -(2025/08/06(Wed) 19:57:39)
    2025/08/07(Thu) 10:48:31 編集(投稿者)

    > 質問の内容が 表を追加して・・・ となっていたので
    > なんで 追加した表に 項目追加して なんでだろうと思っていました (ONnojiさんはもうすでに気づいていたと察します)

    いえいえ、私( ONnoji )は何も気づいていませんですよ。アハハハha

    失礼ながら、キリマンジャロさんの説明を何度読み返しても、やりたいことがサッパリわかりません。

    なので、傍観者になっているだけですよ。(^^ゞ

    p.s.

    [まさやん]さんへ申し上げますが・・・

    当方を「過大評価」するのはご遠慮くださいね。アハハhha

引用返信 [メール受信/OFF]
■15071 / ResNo.14)  Re[4]: 一括処理について
□投稿者/ キリマンジャロ -(2025/08/07(Thu) 10:11:39)
    うにんさん、ジェダイの桐さん、まさやんさん、尾形さん、ONnojiさん
    ありがとうございます。

    今回の質問自体が出来るか、出来ないかの分からない質問だったので抽象的な表現になってしまったのを反省しております。
    また分からないことがあれば、質問させて頂きますのでその時は宜しくお願い致します。
解決済み!
引用返信 [メール受信/OFF]

■記事リスト / レス記事表示 → [親記事-9] [10-14]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■15054 / 親記事)  数値の複写の「項目計算式」
□投稿者/ ポーラン -(2025/08/04(Mon) 10:15:20)
    文字列の複写の場合、#複写( str , n )でいけますが、

    数値の複写の場合、#文字列で「数値 → 文字列」に変換し、
    複写後「文字列 → 数値」に再変換するしかないのでしょうか?
    もっとスマートな方法ありますでしょうか?

    #数値(#複写(#文字列([あいうえお]),1))


    桐10s


    よろしくお願いします。

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

▽[全レス3件(ResNo.1-3 表示)]
■15055 / ResNo.1)  Re[1]: 数値の複写の「項目計算式」
□投稿者/ ポーラン -(2025/08/04(Mon) 10:38:12)
    [あいうえお]) × 1.0
    でも問題ないですか?
引用返信 [メール受信/OFF]
■15059 / ResNo.2)  Re[2]: 数値の複写の「項目計算式」
□投稿者/ うにん -(2025/08/04(Mon) 17:59:29)
    No15055に返信(ポーランさんの記事)
    > [あいうえお]) × 1.0
    > でも問題ないですか?

    それで問題ない場合は単に[あいうえお]でいいはずですが

    と思ったら閉じカッコだけあるということは、#数値()の代りにという意味ですかね?
    桐では加減乗除演算子で型の自動変換は行われません。

    そもそも「#複写()」は、同じ文字列を繰り返すための関数なので、2番目の引数が1という使い方はあり得ませんし、
    「同じ数字を繰り返した数字」に意味があるケースというのは、あんまりないと思いますが...
    例えば123を123123123に変換してどうするのか、ということですが
引用返信 [メール受信/OFF]
■15082 / ResNo.3)  Re[3]: 数値の複写の「項目計算式」
□投稿者/ ポーラン -(2025/08/13(Wed) 12:12:46)
    ありがとうございました。
解決済み!
引用返信 [メール受信/OFF]

■記事リスト / レス記事表示 → [親記事-3]



■記事リスト / ▲上のスレッド
■15051 / 親記事)  認知症検査
□投稿者/ 当年68歳 -(2025/07/19(Sat) 15:47:53)
    やっと見つけた!掲示板、このページ
    この桐「10s」を使って顧客管理などを長年活用させていただいております。

    間もなく「高齢者講習」受講の年齢になります。

    そこで、先日「日本自動車連盟JAF]さんのHPで、
    「よむ・みる識別カトリーニング??」
    といったマウスで答える問題(認知症検査みたいな)がありました。
    この桐で(私)作成出来ないものかと思いました。
    出来たとしても、これまた「〇作権」などに該当しそうですが、
    見聞するだけでもと思い投稿してみました。

    なお、孫の免許学科試験用として、二択での合否と解説的なものは以前作成しましたが。
    一括処理??とかは、未だに使ったことありません。今からでは厳しいです。
    すみません。
引用返信 [メール受信/OFF]

▽[全レス1件(ResNo.1-1 表示)]
■15053 / ResNo.1)  Re[1]: 認知症検査
□投稿者/ うにん -(2025/07/27(Sun) 11:23:38)
    > そこで、先日「日本自動車連盟JAF]さんのHPで、
    > 「よむ・みる識別カトリーニング??」
    > といったマウスで答える問題(認知症検査みたいな)がありました。

    これですかね。
    https://jaf.or.jp/common/safety-drive/online-training/senior/over75-test

    > この桐で(私)作成出来ないものかと思いました。
    > 一括処理??とかは、未だに使ったことありません。今からでは厳しいです。

    一括処理でプログラムを作らないと難しいかな。

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

■記事リスト / レス記事表示 → [親記事-1]






02889

Mode/  Pass/

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

- Child Tree -
- Antispam Version -