Top > サンプルテンプレート
HTML convert time to 0.004 sec.


サンプルテンプレート

Last-modified: 2006-09-04 (月) 11:12:06

利用バージョン Edit

HSP3.1
Easy3Da

スクリーンショット Edit

まだない

ダウンロード Edit

ない

ソース Edit

filemap[1.2].as
Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
-
|
|
!
-
|
|
|
!
-
|
|
!
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
-
|
|
!
-
|
|
!
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
/******************************************************************************
 *                                                                            *
 *                            データ構造:連想配列1                           *
 *                                                                            *
 ******************************************************************************/
 
    #module "map"
 
    ;-----------------------------------------------------------------------
    ; 連想配列を作成する
    ; map_dim 要素数, keyの最大レングス, valueの最大レングス
    ;-----------------------------------------------------------------------
    #deffunc map_dim int, int, int
//      モジュール内でグローバルな変数は別途用意しなければならない < kz3
//      mref mapSize, 0
//      mref keyLength, 1
//      mref valueLength, 2
        mref n1, 0 : mapSize     = n1 ; 要素数
        mref n2, 1 : keyLength   = n2 ; keyの最大レングス
        mref n3, 2 : valueLength = n3 ; valueの最大レングス
 
        sdim keyArray, keyLength, mapSize
        sdim valueArray, valueLength, mapSize
        return
 
    ;-----------------------------------------------------------------------
    ; 指定の値と指定されたキーをこのマップに関連付けます。
    ; マップが以前にこのキーのマッピングを保持していた場合、古い値が置き換えられます。
    ; map_put key, value
    ;-----------------------------------------------------------------------
    #deffunc map_put str, str
        mref return_status,64 ; statusの戻り値
        mref key, 32          ; key
        mref value, 33        ; value
 
//      1つ余計にループを回して最終回チェック
//      さらに最終回チェックは要素の参照前にチェック < kz3
//      repeat mapSize      
        repeat mapSize+1
          if cnt == mapSize {       ;cntが配列の要素数に達した=空きがない。
            return_status = 1
            break
          }
          if keyArray.cnt == "" {   ;key配列が空なら追加
            keyArray.cnt = key
            valueArray.cnt = value
            break
          }
          if keyArray.cnt == key {  ;key配列に同じ値が見つかればvalueを更新
            valueArray.cnt = value
            break
          }
 
        loop
        
        return
 
    ;-----------------------------------------------------------------------
    ; キーにマップされている値を返します。
    ; 存在しなければstatus=0が返ります。
    ; map_get key, 結果を保持する変数
    ;-----------------------------------------------------------------------
    #deffunc map_get str, val
        mref return_status,64 ; statusの戻り値
        mref get_key, 32      ; key
        mref get_value, 25    ; 戻り値
 
//      1つ余計にループを回して最終回チェック
//      さらに最終回チェックは要素の参照前にチェック < kz3
//      repeat mapSize
        repeat mapSize + 1
          if cnt == mapSize {           ;cntが配列の要素数に達した=空きがない。
            return_status = 1
            break
          }
          if keyArray.cnt == get_key {  ;key配列に同じ値が見つかればvalueを更新
            get_value = valueArray.cnt
            break
          }
 
        loop
        
        return
    #global
 
/* -------------------------------------------------------------------------- *
 *                                                                            *
 *                           S A M P L E                           *
 *                                                                            *
 * -------------------------------------------------------------------------- */
    map_dim 10, 10, 100   ; 連想配列の作成
 
    map_put "国語", "90点"
 
    sdim result
    map_get "国語", result
    
    if stat!1 : print result : else : print "見つかりません."
 
    stop

利用モデル Edit

むむ

解説 Edit

はは

掲示板 Edit

{{bbs}}