⑴ 我是一個初學者,誰有 c# winform 中用到ini 配置文件的具體例子,發我一份緊用作學習之用,謝謝~
你得先下載一個kernel32.dll然後在你的項目中添加引用
下面是我做過的一個例子,你可以參考一下
public class inifile
{
#region 導入dll函數
[DllImport("kernel32.dll")]
public extern static int GetPrivateProfileIntA(string segname, string keyname, int idefault, string filename);
[DllImport("kernel32.dll")]
public extern static int GetPrivateProfileStringA(string segname, string keyname, string sdefault, StringBuilder retvalue, int nsize, string filename);
[DllImport("kernel32.dll")]
public extern static int GetPrivateProfileSectionA(string segname, byte[] sdata, int nsize, string filename);
[DllImport("kernel32.dll")]
public extern static int WritePrivateProfileSectionA(string segname, byte[] sdata, string filename);
[DllImport("kernel32.dll")]
public extern static int WritePrivateProfileStringA(string segname, string keyname, string svalue, string filename);
[DllImport("kernel32.dll")]
public extern static int (byte[] vdata, int ilen, string filename);
#endregion
private string _path;
/// <summary>
/// 所有的設置節
/// </summary>
public inisegments segments;
/// <summary>
/// 構造函數
/// </summary>
/// <param name="vpath">ini文件路徑</param>
public inifile(string vpath)
{
_path = vpath;
segments = new inisegments(this);
byte[] bufsegs = new byte[32767];
int rel = (bufsegs, 32767, _path);
int icnt, ipos;
string tmp;
if (rel > 0)
{
icnt = 0; ipos = 0;
for (icnt = 0; icnt < rel; icnt++)
{
if (bufsegs[icnt] == 0x00)
{
tmp = System.Text.ASCIIEncoding.Default.GetString(bufsegs, ipos, icnt).Trim();
ipos = icnt + 1;
if (tmp != "")
segments.add(tmp);
}
}
}
}
/// <summary>
/// 獲取ini文件路徑
/// </summary>
public string path
{
get { return _path; }
}
/// <summary>
/// 讀取一個整數型的設置值
/// </summary>
/// <param name="segname">設置節名</param>
/// <param name="keyname">設置項名</param>
/// <param name="idefault">默認值</param>
/// <returns>設置值</returns>
public int getint(string segname, string keyname, int idefault)
{
return GetPrivateProfileIntA(segname, keyname, idefault, _path);
}
/// <summary>
/// 讀取一個字元串型設置值
/// </summary>
/// <param name="segname">設置節名</param>
/// <param name="keyname">設置項名</param>
/// <param name="sdefault">默認值</param>
/// <returns>設置值</returns>
public string getstring(string segname, string keyname, string sdefault)
{
StringBuilder red = new StringBuilder(1024);
GetPrivateProfileStringA(segname, keyname, "", red, 1024, _path);
return red.ToString();
}
/// <summary>
/// 寫入設置項
/// </summary>
/// <param name="segname">設置節名</param>
/// <param name="keyname">設置項名</param>
/// <param name="vvalue">設置值</param>
public void setstring(string segname, string keyname, string vvalue)
{
WritePrivateProfileStringA(segname, keyname, vvalue, _path);
}
/// <summary>
/// 寫入一個設置節
/// </summary>
/// <param name="segname">設置節名</param>
/// <param name="vdata">數據</param>
/// <remarks>
/// 數據為多個設置項組成的字元串,每個設置項之間用 "\0" 分割
/// 字元串最後用 "\0\0" 結束
/// </remarks>
/// <example>
/// writesegment(segname,"\0\0"); 能用於清除一個設置節下的所有設置項
/// </example>
public void writesegment(string segname, string vdata)
{
WritePrivateProfileSectionA(segname, System.Text.ASCIIEncoding.Default.GetBytes(vdata), _path);
}
/// <summary>
/// 讀取一個設置節下面的所有設置項
/// </summary>
/// <param name="o">要讀取的設置節</param>
public void getsegment(inisegment o)
{
byte[] vdata = new byte[32767];
int rlen = GetPrivateProfileSectionA(o.name, vdata, 32767, _path);
o.items.Clear();
if (rlen < 1) return;
string tmp = "";
int ipos, icnt;
ipos = 0;
for (icnt = 0; icnt < rlen; icnt++)
{
if (vdata[icnt] == 0x00)
{
tmp = System.Text.ASCIIEncoding.Default.GetString(vdata, ipos, icnt - ipos).Trim();
if (tmp != "")
{
string[] t = tmp.Split('=');
if (t.Length <= 1)
o.items.add(t[0], "");
else
o.items.add(t[0], t[1]);
}
ipos = icnt + 1;
}
}
}
}
用的時候就直接實例化這個寫好的方法類 進行編輯
string COM = new inifile("ini文件地址").segments["分類名稱"].items["子項屬性"].value
這樣就可以獲取。
例如:
人(分類名稱)
身高(子項屬性)=100
體重(子項屬性)=55
inifile ini = new inifile("ini文件路徑");
ini.setstring("需要修改的分類名", "子項", "值");
⑵ 怎樣學習linux
方法是多動手、動腦,學習時要經常與Windows進行對比。建議你先安裝RedHat Linux,然後練習如何配置它,如何使用Linux命令,如何在X—WINDOWS下操作,如何在Linux下安裝應用軟體,如何在Linux下上網、編輯文檔、播放多媒體文件、玩游戲等。
快速上手的方法只有一個,那就是多動手操作,看看你能否完成上面的工作。
2、Linux與Windows有哪些異同點?
Windows是圖形界面的,Linux類似以前的DOS,是文本界面的,如果你運行了圖形界面程序X-WINDOWS後,Linux也能顯示圖形界面,也有開始菜單、桌面、圖標等。
Windows有MS-DOS方式,在該方式下通過輸入DOS命令來操作電腦;而Linux與Windows類似,也有命令方式,Linux啟動後如果不執行X-WINDOWS,就會處於命令方式下,必須發命令才能操作電腦。另外Linux上也有很多的應用軟體,安裝運行了這些軟體後,你就可以在Linux上編輯文檔、圖片,玩游戲、上網、播放多媒體文件等。
不過Linux的分區格式和目錄結構,與Windows迥然不同,應用軟體的安裝方式也不同。
3、安裝Linux時的注意事項
安裝前確定好Linux安裝在哪個分區,Linux也有系統分區和Swap分區(類似Windows的虛擬分區,即交換文件)兩個分區。由於Linux支持的分區格式與Windows分區格式不同,所以如果安裝了Linux後,Windows還能繼續使用,Linux就應該安裝在硬碟分區的最後一個擴展分區;其次Linux的Swap分區必須保證有60MB,系統分區最少要保證240MB;此外安裝前搜集好PC硬體方面的信息,特別是顯示器信息,這將直接決定你安裝Linux後,使用圖形界面程序的效果;在安裝、使用中輸入命令時,請注意大小寫。
4、掌握Linux的目錄結構
Linux的目錄結構與Windows不同,而且在Windows下看不到Linux的目錄,反過來,Linux也看不到Windows下的目錄。Linux下各目錄的含義如下:
目錄名稱
意 義
/vmlinuz
該目錄中存放的是系統內核
/bin
該目錄中存放Linux的常用命令,在有的版本中是一些和根目錄下相同的目錄。
/boot
該目錄下存放的都是系統啟動時要用到的程序,當用lilo引導Linux時,會用到這里的一些信息
/dev
該目錄包含了Linux系統中使用的所有外部設備,它實際上是訪問這些外部設備的埠,你可以訪問這些外部設備,與訪問一個文件或一個目錄沒有區別。例如在系統中鍵入「cd /dev/cdrom」,就可以看到光碟機中的文件;鍵入「cd /dev/mouse」即可看滑鼠的相關文件。
/cdrom
該目錄在剛安裝系統時是空的,你可以將光碟機文件系統掛在這個目錄下, 例如「mount /dev/cdrom /cdrom」
/etc
該目錄存放了系統管理時要用到的各種配置文件和子目錄,例如網路配置文件、文件系統、X系統配置文件、設備配置信息、設置用戶信息等。
/sbin
該目錄用來存放系統管理員的系統管理程序。
/home
如果建立一個名為「xx」的用戶,那麼在/home目錄下就有一個對應的「/home/xx」路徑,用來存放該用戶的主目錄。
/lib
該目錄用來存放系統動態連接共享庫,幾乎所有的應用程序都會用到該目錄下的共享庫
/lost+found
該目錄在大多數情況下都是空的。但當突然停電、或者非正常關機後,有些文件就臨時存放在這里。
/mnt
該目錄在一般情況下也是空的,你可以臨時將別的文件系統掛在該目錄下。
/proc
可以在該目錄下獲取系統信息,這些信息是在內存中由系統自己產生的
/root
如果你是以超級用戶的身份登錄的,這個就是超級用戶的主目錄
/tmp
用來存放不同程序執行時產生的臨時文件
/usr
用戶的很多應用程序和文件都存放在該目錄下
5、Linux的常用命令
如果在Linux命令行模式下遇到不會用的命令,你可以打"man [command]"得到該命令的幫助,如果想知道一個命令有哪些參數,可以打command -help來得到。
注意:linux中的參數輸入形式和dos不一樣,在命令後面應該打一個空格,然後打"-",最後再跟一個或多個參數;另外linux下大小寫是有區別的!
下面介紹幾個linux下最常用的命令,每個命令都與對應的dos命令作比較,並列出一些常用的參數。
命令參數
意 義
Ls
-a列出系統中的隱含文件,linux下的隱含文件是靠文件名的格式來表示的,不同於dos是靠文件屬性來表示,即只要該文件以「.」開頭,那麼它就是隱含文件。
-l以長式列出。就是把該文件或目錄的所有信息都列出來,一個文件佔一行
相當於dos下的dir命令,是列文件列表的命令。
cd
和dos下的cd一樣,轉換目錄的命令。 注意:linux下轉到上級目錄要打"cd .."而不是dos下的"cd..",即"cd"後面要有個空格
pwd
列出當前目錄命令,相當於dos下沒有參數的cd命令。例如:
[root@ttqq bin]# pwd /usr/bin [root@ttqq bin]# 這表示目前在"/usr/bin"目錄下。
Mkdir
-m mode表示建立目錄時默認的目錄模式。這個是dos和Windows所沒有的功能,主要是關於許可權的問題。
建立新目錄,相當於dos的md命令。一般就用 mkdir [dirname]
rmdir
刪除目錄,相當於dos的rd命令。
用法:rmdir [dirname]
cp
-r相當於dos的x/s。用於拷貝一個目錄下的所有子目錄和文件
建立新目錄,相當於dos的md命令。一般就用 mkdir [dirname]
cat
在文件後面追加文件,或在屏幕上列印文件內容,追加功能相當於dos的 file1+file2,而在屏幕上列印文件內容可以和dos的typeml來類比。如果文件太大,在一屏上無法完全顯示,則可用more命令
more
分屏顯示文件內容,和dos下的more命令大致相同,但它可以和別的命令搭配使用。如:cat /home/eec/myfile | more。
參考資料:http://blog.donews.com/jgs/category/29817.aspx
⑶ 學嵌入式linux需要先學什麼
剛入門的時來候,淘寶買一塊cortex m3開發板源即可入手,通過項目,你需要了解:任務調度、進程間通信、內存管理、設備驅動、文件系統、TCP/IP協議棧、同步非同步、中斷、軟體架構插件化等等基本原理,這些對你後面轉Linux應用開發,安卓開發,後台開發大有好處。
到這一步,就看自己職業方向想往哪裡發展,如果是想深入IOT物聯網做端雲連接,那麼可以把幾種基本匯流排驅動,I2C、SPI、USART理解透,如果是想擁抱互聯網轉入應用開發,那麼可以把基礎組件,如協議棧、文件系統吃透,BAT面試不是很難,問的都是這些基礎。
順便說一下,學東西就要學對市場有用的,不要過於學習屠龍之術,炫技給個人帶來不了財富,公司需要的是能幹活的人。
不準備講過於偏硬體的知識如Cortex-M3的多種中斷模式,操作寄存器組,晶元降噪等內容,而是專注於操作系統基本知識和項目經驗,這些對於開發者後面接觸Linux系統大有脾益,這些軟體開發經驗也是去互聯網公司看重的能力。如有需要學習Linux命令請如下查找:
⑷ ArchLinux安裝後的必須配置與圖形界面安裝教程
在 上一篇教程 中,我們成功地安裝了 ArchLinux ,這時系統處於一個非常精簡的狀態,為了日常使用,我們必須進行一些配置、安裝一些需要的組件,來擴展我們的系統功能,開源的組件相互協同工作也是 Linux 的迷人之處之一。
下面的教程部分參考了官方 General recommendations 。
現在我們是在新安裝的系統上進行操作,所以我們要重新聯網,我們在之前安裝系統時已經提前裝好了相關的包。所以現在只要跟之前一樣:
同樣可以使用 ping 命令來測試是否正常聯網。
交換文件可以在物理內存不足的時候將部分內存暫存到交換文件中,避免系統由於內存不足而完全停止工作。
之前我們通常採用單獨一個分區的方式作為交換分區,現在更推薦採用交換文件的方式,更便於我們的管理。
分配一塊空間用於交換文件,執行:
交換文件的大小可以自己決定,推薦4G以下的物理內存,交換文件與物理內存一致,4G以上的物理內存,交換文件4-8G。
更改許可權,執行:
設置交換文件,執行:
啟用交換文件,執行:
最後我們需要編輯 /etc/fstab 為交換文件設置一個入口,使用 vim 打開文件:
注意編輯 fstab 文件的時候要格外注意不要修改之前的內容,直接在最後新起一行加入以下內容 :
在這之前所有操作都是以 root 用戶的身份進行的,由於 root 的許可權過高,日常使用 root 用戶是不安全的。 Linux 為我們提供了強大的用戶與組的許可權管理,提高了整個系統的安全性。這里我們就來新建一個用戶。
執行以下命令來創建一個名為 username 的用戶(請自行替換 username 為你的用戶名):
在這里稍微解釋一下各參數的含義:
-m :在創建時同時在 /home 目錄下創建一個與用戶名同名的文件夾,這個目錄就是你的 家目錄 啦!家目錄有一個別名是 ~ ,你可以在任何地方使用 ~ 來代替家目錄路徑。這個神奇的目錄將會用於存放你所有的個人資料、配置文件等所有跟系統本身無關的資料。這種設定帶來了諸多優點:
-G wheel : -G 代表把用戶加入一個組,對用戶與組的概念感興趣的同學可以自行查找有關資料學習。後面跟著的 wheel 就是加入的組名,至於為什麼要加入這個組,後面會提到。
當然記得為新用戶設置一個密碼,執行如下命令:
根據提示輸入兩次密碼就可以了,注意,這是你的用戶密碼,推薦與之前設置的 root 用戶的密碼不同。
我們已經創建好了一個新的用戶,以後我們將會使用這個用戶來登錄,那麼如果我們需要執行一些只有 root 用戶才能執行的命令(例如修改系統文件、安裝軟體包)怎麼辦?當然我們可以通過
命令來切換到 root 用戶執行命令後再通過
返回普通用戶。
但是 sudo 為我們提供了一個更快捷的辦法,使用 sudo ,我們只要在需要 root 權許可權執行的命令之前加上 sudo 就可以了,例如安裝軟體包:
下面我們就來安裝並配置 sudo 。
sudo 本身也是一個軟體包,所以我們需要通過 pacman 來安裝:
接下來我們需要用專門的 visudo 命令來編輯 sudo 的配置文件:
實際上就是 vim 的操作,使用它是為了對編輯後的文件進行檢查防止格式的錯誤。
找到
這行,去掉之前的 # 注釋符,保存並退出就可以了。
這里的 %wheel 就是代表 wheel 組,意味著 wheel 組中的所有用戶都可以使用 sudo 命令。
當然為了安全使用 sudo 命令還是需要輸入 當前用戶 的密碼的。
配置好 sudo 以後,我們進行一次重啟,執行:
來重啟你的電腦。
重啟以後輸入你 剛創建的用戶名與密碼 來登錄。
參照這個表格,安裝相應的包,比如你是 intel 的集成顯卡(絕大多數人的情況),執行:
提示: Nvidia 的獨顯驅動如非必要,建議只裝集成顯卡的驅動(省電,如果同時裝也會默認使用集成顯卡),不容易出現沖突問題。相反,如果集成顯卡驅動有問題無法裝上,可以裝獨顯驅動,具體的版本請到下面的鏈接查詢:
Xorg 是 Linux 下的一個著名的開源圖形服務,我們的桌面環境需要 Xorg 的支持。
執行如下命令安裝 Xorg 及相關組件:
Linux 下有很多著名的桌面環境如 Xfce 、 KDE(Plasma) 、 Gnome 、 Unity 、 Deepin 等等,它們的外觀、操作、設計理念等各方面都有所不同, 在它們之間的比較與選擇網上有很多的資料可以去查。
在這里我們選擇筆者使用的 Xfce 和非常流行的 KDE(Plasma) 作為示範,當然你也可以把它們全部裝上換著用……因為 Linux 的模塊化,這樣完全沒有問題。
更多桌面環境的安裝指南請見下面的鏈接:
直接安裝軟體包組(包含了很多軟體包)即可:
直接安裝軟體包組(包含了很多軟體包)即可:
安裝好了桌面環境包以後,我們需要安裝一個圖形化的桌面管理器來幫助我們登錄並且選擇我們使用的桌面環境,這里我推薦使用 sddm 。
執行:
這里就要介紹一下 Arch 下用於管理系統服務的命令 systemctl 了,服務的作用就是字面意思,為我們提供特定的服務,比如 sddm 就為我們提供了啟動 xorg 與管理桌面環境的服務。
命令的使用並不復雜:
所以這里我們就執行下面命令來設置開機啟動 sddm :
到現在我們已經安裝好了桌面環境,但是還有一件事情需要我們提前設置一下。由於我們之前使用的一直都是 netctl 這個自帶的網路服務,而桌面環境使用的是 NetworkManager 這個網路服務,所以我們需要禁用 netctl 並啟用 NetworkManager :
同時你可能需要安裝工具欄工具來顯示網路設置圖標(某些桌面環境已經裝了,但是為了保險可以再裝一下):
這樣開機以後我們就可以在圖形界面下配置我們的網路啦。
重新啟動後,如果你看到桌面管理器的界面,選擇你需要的桌面環境並輸入用戶名與密碼登陸後,看到了熟悉而又陌生的桌面,那麼恭喜你,你已經完成了桌面環境的安裝!
到這里, ArchLinux 的安裝與基本配置教程已經結束了,筆者在編寫過程中基本憑著多次安裝的經驗與這次安裝的記錄完成,難免會有疏漏與不正確的地方,還請大家通過下面的評論或郵件( [email protected] )提出意見與建議。也歡迎你們與我交流安裝的問題。
下一篇文章 介紹了一些實用的配置(如中文輸入法的安裝)與軟體包等。
⑸ 學java需要掌握 xml嗎
學習java必須掌握xml知識,包括新建xml標簽文件、如何解析xml文件節點等等知識,這些知識在web項目或者桌面項目中,都會在網路上傳輸數據,使用xml文件傳輸形式,可以節省流量,統一格式讀取數據。
在電子計算機中,標記指計算機所能理解的信息符號,通過此種標記,計算機之間可以處理包含各種的信息比如文章等。它可以用來標記數據、定義數據類型,是一種允許用戶對自己的標記語言進行定義的源語言。 它非常適合萬維網傳輸,提供統一的方法來描述和交換獨立於應用程序或供應商的結構化數據。是Internet環境中跨平台的、依賴於內容的技術,也是當今處理分布式結構信息的有效工具。早在1998年,W3C就發布了XML1.0規范,使用它來簡化Internet的文檔信息傳輸。