0

データベースで同じログイン ID ユーザーを見つけようとしています。

まず、すべてのユーザーをスキップリストに入れ、次に 1 つずつ比較します。私の質問は、Skiplist でキー値を取得する方法です。

私のコードの一部はここにあります:

for lUser in userList do {

    string uName = lUser.name
    string uEmail = lUser.email
    string uSys = lUser.systemLoginName
    string uAdr = lUser.address
    outBuf +=  uName sep uSys sep uEmail sep uAdr
    outBuf += "\n"

    // Here I have to add some code, I can put the values but not get again or compare
    // I need some for loop and get every key value
    put(skiplist,count,uSys)
    print count
    print "\n"
    count++
}

誰かがこれについてのヒントを与えることができますか、私はこの言語が初めてです。前もって感謝します。

編集:今それは働いています

    pragma runLim,0
string sep = ";"
string dbName = getDatabaseName
print "\n" "List of doors user in database " getDatabaseName  ": \n\n"
int count = 0
User lUser

Group lGroup
Skip skiplist = create

for lUser in userList do {
  string uName = lUser.name
  string uEmail = lUser.email
  string uSys = lUser.systemLoginName
  string uAdr = lUser.address


  if(null uSys)
  {
    print uName " doesn't have a System Name.\n"
  } else {
    bool flagDuplicate = false
    string nameDuplicate = ""
    string s = ""
    for s in skiplist do {
      if(s == uSys) {
        flagDuplicate = true
        nameDuplicate = (string key skiplist)
        break
      }
    }

    if(flagDuplicate) print "Users '" uName "' and '" nameDuplicate "' have the same System Name (" uSys ").\n"
    else put(skiplist,uName,uSys)

  }
}

pragma runLim,0この行は、実行時間の警告を回避するためのものです。

4

1 に答える 1

1

あなたが探しているのはこれのようです:

for lUser in userList do {
  string uName = lUser.name
  string uEmail = lUser.email
  string uSys = lUser.systemLoginName
  string uAdr = lUser.address
  outBuf +=  uName sep uSys sep uEmail sep uAdr
  outBuf += "\n"

  if(null uSys)
  {
    print uName " doesn't have a System Name.\n"
  } else {
    bool flagDuplicate = false
    string nameDuplicate = ""
    string s = ""
    for s in skiplist do {
      if(s == uSys) {
        flagDuplicate = true
        nameDuplicate = (string key skiplist)
        break
      }
    }

    if(flagDuplicate) print "Users '" uName "' and '" nameDuplicate "' have the same System Name (" uSys ")."
    else put(skiplist,uName,uSys)

    print "\n"
  }
}

編集: 空白のチェックを追加しました。uSysすべての空のものをリストに追加するだけで、最後にそれを印刷したい場合は、そこに何でもできます。

これにより、少なくとも正しい方向に進むはずです。

注: 現在、このコードをテストする能力がないため、エラーやタイプミスがある場合はお詫び申し上げます。しかし、それはあなたを十分に近づけると思います。

幸運を!

于 2013-11-21T13:58:54.123 に答える