繁体   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