2016-10-20 3 views
0

문자열을 작성하고 문자열의 올바른 위치에 값 (0 또는 1 라디오 확인란)을 설정하려고합니다. 문자열을 만들고 배열 위치에 따라 값을 설정합니다. 주어진 ID 위치에서 설정해야합니다. 이드 위치의 INT accessID 설정된다문자열의 올바른 위치에 값을 설정하십시오.

Response.Write(perm + " - " + Request.Form[perm] + "<br />"); 

이 기록 출력은 다음

access_1 - 0 
access_30 - 0 
access_6 - 1 
access_34 - 0 
access_31 - 0 
access_37 - 0 
access_2 - 0 
access_23 - 0 
access_28 - 0 
access_35 - 0 
access_36 - 0 

그리고

Response.Write(inputPerms + "<br>"); 

쓰기 출력 :

0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0# 

access_6이 값을 갖는다 체크 한 테이블에서 1로 설정됩니다. 3 열의 라디오 입력을 편집하여 문자열의 세 번째 위치에 설정했습니다. 이 순서대로 작동하며 액세스 ID 위치에 따라 문자열에 설정하려고합니다. 따라서 access_6은 올바른 위치에 1을 설정해야합니다.이 경우는 여섯 번째 여야합니다. 문자열의 올바른 위치에 값을 설정하려면 어떻게해야합니까? 어떤 도움이 분명하다

0#0#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0# 

희망, 감사 - (access_6) 6 위치 : 출력 문자열이 대신해야한다. 여기에 코드입니다 :

if (Request.Form["updatePerm"] != null && Request.QueryString["action"]=="update") 
{ 
    foreach (string perm in Request.Form) 
    { 
     string input = perm.Substring(0, perm.IndexOf("_") + 1); 

     if (input == "access_") 
     { 

      string accessRef = perm.Replace("access_", ""); 
      int accessID = Convert.ToInt32(accessRef) + 1; 

      Response.Write(perm + " - " + Request.Form[perm] + "<br />"); 

      string chkInputs = Request.Form[perm]; 
      inputPerms += !string.IsNullOrWhiteSpace(chkInputs) ? chkInputs + "#" : ""; 

     } 
    } 

    Response.Write(inputPerms + "<br>"); 
} 
+0

, 당신은 ('고정 된 배열을 만들 수 있습니다 INT [] accessArr = INT [30]') 그리고 설정시'accessID'를 인덱서로 사용하십시오. 'foreach'가 항상 순서대로 값을 줄 것이라는 것을 알고 있다면'List ' – Enfyve

+0

덕분에 이해할 수 있지만 어떻게 구현할 수 있을지 모르겠다. 어떻게 보여줄 수 있니? –

답변

0

이 시도 : 이미 수와 입력을 알고이 변경되지 않으면

  string[] input = { 
       "access_1 - 0", 
       "access_30 - 0", 
       "access_6 - 1", 
       "access_34 - 0", 
       "access_31 - 0", 
       "access_37 - 0", 
       "access_2 - 0", 
       "access_23 - 0", 
       "access_28 - 0", 
       "access_35 - 0", 
       "access_36 - 0" 
          }; 
      string inputPerms = ""; 
      foreach (string line in input) 
      { 
       inputPerms += string.Format("#{0}",line.Split(new char[] {'-'}).Skip(1).First().Trim()); 
      } 
      Console.WriteLine(inputPerms); 
      Console.ReadLine(); 
관련 문제