簡體   English   中英

C#:如何根據.csv中的列檢查用戶控制台輸入?

[英]C#: How to check user console input against a column in a .csv?

我是C#的新手,我正在制作一個小型的基於文本的RPG游戲,僅供練習,我想知道是否仍然可以制作與此類似的東西:

  • 詢問用戶名稱
  • 詢問用戶密碼
  • 檢查名稱是否在.csv文件的第1列中
  • 如果是,請檢查密碼是否在第2列中並且與名稱位於同一行
  • 如果一切順利,請將與名稱和密碼相同的行中第3列和第4列的值加載到相應的值中,例如health和level

如果我沒有很好地解釋它,這是一個示例.csv:

"charactername", "password123", "health", "level"
"Oswald", "498562a", "100", "4"
"Hammerfist", "98457813", "77", "6"

因此,為了清楚起見,這就是我的想法:

  • 輸入您的用戶名:Oswald
  • 輸入密碼:498562a
    • 程序讀取文件的第1列以查找“ Oswald”並找到匹配項
    • 然后程序檢查密碼值是否在同一行中但在文件的第2列中,並檢查密碼是否與用戶輸入匹配,是否與用戶輸入匹配
    • 然后程序將運行狀況和級別值加載到字符變量中
  • 入學成功

有沒有辦法做到這一點? 我是否忽略了一個簡單的解決方案? 還是我應該嘗試以其他方式去做? 我只是不想將值硬編碼為Dictionary或List或Array或其他任何東西。 我也不是在這個階段尋找安全性,只是為了練習和娛樂。

提前致謝! 如果您需要更好地了解我要做什么,請告訴我,我將盡力向您解釋。

閱讀csv有兩種方法

  1. 就像標准文本文件一樣,逐行。 然后將您的行解析為列數組並獲取值

  2. 使用Microsoft.ACE.OLEDB.version

    OleDbconnection連接=新的OleDbConnection(); connection.ConnectionString =“ Provider = Microsoft.ACE.OLEDB.12.0;數據源= C:\\ Documents \\ file.csv;擴展屬性= \\” Text; HDR = Yes; FORMAT = Delimited \\“”;

這樣,您可以在應用程序的開頭加載DataTable並查詢該表,就像Sql數據庫一樣。

注意:HDR = Yes表示第一行是標題行

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM