簡體   English   中英

C#中的Pascal字符串

[英]Pascal strings in C#

我正在使用C#中的音頻庫,正在使用WAVE文件格式的ATM。 根據我正在使用的信息量很大的網站 ,WAVE使用Pascal樣式字符串。 我已經谷歌搜索超過20分鍾,只有一個C到帕斯卡轉換器

我知道Pascal和C字符串的比較(C代碼):

char *cStr = "Test"; // C - produces {'T', 'e', 's', 't', '\0'}
char pascal[] = {4, 'T', 'e', 's', 't'}; // Pascal

如果有幫助,我使用System.IO.BinaryReader來解析文件。

好吧,如果你使用BinaryReader這應該很容易。

var size = rd.ReadByte();
var body = rd.ReadBytes(size);
var text = System.Text.Encoding.ASCII.GetString(body);

Pascal字符串背后的基本思想是第一個字節保存字符串長度,后續字節保存字符串數據(將字符串限制為255個字符)。

我將使用字節數組並使用C#中的字符串到字節轉換方法來填充它。 請參閱下面問題的已接受答案,以了解如何將C#字符串轉換為字節數組,並記住將所有1個數組位置偏移以允許第0個字節的空間,保持字符串長度,並記住填充第0個字節實際的字符串長度。 檢查輸入字符串長度以確保它不超過255個字符:-)

如何在不手動指定編碼的情況下在C#中獲得字符串的一致字節表示?

暫無
暫無

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

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