2016-02-19 86 views
0

我正在做mvc中的一個項目。我有用於讀寫和2個ID的複選框。從形式我會收到以下格式的數據。我將得到INT perm_id,讀取值我將在INT的陣列例如INT的形式得到[]讀= {1345},INT []寫= {1235}無法在mvc項目中以所需格式呈現數據

per_id  read write 
    1  1  1 
    1    2 
    1  3  3 
    1  4  
    1  5  5 

    1  7  7 

這裏權限ID是相同的。在讀取下有一個值1,表示選中相應的複選框。在寫下的第一列中有一個值1,因此檢查相應的複選框。在右邊的第二行有空,所以相應的複選框被再次取消選中,在寫入下有一個值2,因此再次檢查相應的複選框。在第6行中,兩個複選框均未選中,因此讀取和寫入都爲空。現在我想要如下呈現上述數據。

scrn_id perm_id  read  write 
    1   1  True  true 
    2   1  false true 
    3   1  true  true 
    4   1  true  false 
    5   1  true  true 
    7   1  true  true 

這是他需要的格式保存在數據庫中。我從過去的幾天嘗試過很多方法,但iam無法以要求的格式保存數據。有沒有人可以解決這個問題。提前致謝。

回答

0

這似乎是位掩碼的好去處:

#include <stdio.h> 

#define BIT(n) (1U << (n)) 

int main(void) 
{ 
    unsigned rarr[] = {1, 3, 4, 5}; 
    unsigned warr[] = {1, 2, 4, 5}; 
    unsigned r = 0; 
    unsigned w = 0; 
    size_t i, n; 

    n = sizeof rarr/sizeof rarr[0]; 
    for (i = 0; i < n; i++) { 
     r |= BIT(rarr[i]); 
    } 
    n = sizeof warr/sizeof warr[0]; 
    for (i = 0; i < n; i++) { 
     w |= BIT(warr[i]); 
    } 
    printf("n read write\n"); 
    for (n = 1; n <= 5; n++) { 
     printf("%zu %-5s %-5s\n", n, 
       r & BIT(n) ? "True" : "False", 
       w & BIT(n) ? "True" : "False" 
     ); 
    } 
    return 0; 
} 

輸出:

n read write 
1 True True 
2 False True 
3 True False 
4 True True 
5 True True 
+0

大邏輯。我可以在c#中實現相同嗎? –

+0

是的:http://www.dotnetperls.com/and –

+0

我會得到數組像int []讀= {1,3,4,5}所以如何寫下面的代碼? r | = BIT(1); r | = BIT(3); r | = BIT(4); r | = BIT(5); –

相關問題