小编Jef*_*rey的帖子

C#和IStream.Read

我正在尝试使用C#中的System.Runtime.InteropServices.ComTypes.IStream,但我遇到了一些麻烦.根据MSDN,C#定义如下所示:

void Read(
    byte[] pv,
    int cb,
    IntPtr pcbRead
)
Run Code Online (Sandbox Code Playgroud)

基本上,我可以从流中读取数据,但上面的"pcbRead"值始终为"0"(即使字节数组包含我的数据).做一些阅读,似乎pcbRead参数设置得有点棘手(尽管我对C#还不熟悉).

无论如何,我的代码基本上是这样的:

myPtr = (IntPtr)0;
int buffSize = 8192;
byte[] buffer = new byte[buffSize];
while (true)
{
  strm.Read(buffer, buffSize, myPtr);
  fs.Write(buffer, 0, myPtr.ToInt32());
  if (myPtr.ToInt32() < buffSize) break;
}
Run Code Online (Sandbox Code Playgroud)

同样,问题是"myPtr"在读取后仍然包含"0",尽管"缓冲区"似乎包含有效数据.

c# istream

5
推荐指数
1
解决办法
6057
查看次数

.NET(C#)事件 - 自定义EventArgs问题

我有许多C#自定义事件与树中选择的项目相关联,然后使用上下文菜单触发对所选项目的某些操作.我开始为每个自定义事件创建一个单独的基于EventArgs的类,以打包事件的必要数据.

在后视中,我意识到我的大多数(可能是所有)自定义事件都需要至少传递树选择所代表的底层对象列表.有些事件也可能需要额外的数据.

考虑到这一点,我想知道以下任何一种是否是可接受的做法?

  • 对多个事件使用相同的基于EventArgs的自定义类(那些只需要传递对象列表的事件).显然,这应该可行,但似乎脱离了一些用于连接事件机制的推荐命名约定.

  • 创建一个基类,它包装我经常需要的对象列表,然后从中派生其他类,因为需要额外的数据.

  • 也许还有别的什么呢?

目前,我只有少数自定义事件,但需要添加更多.由于我看到每个事件所需的数据都出现了一种模式,我希望在继续之前有一个更好的计划.

谢谢你的建议.

.net c# events

5
推荐指数
1
解决办法
1337
查看次数

解析二进制文件中的结构内容

使用C#,我需要读取使用FORTRAN创建的压缩二进制文件.该文件存储在为(在"未格式化连续文件"部分大约中途下页)这里所描述的"无格式顺序"格式:

http://www.tacc.utexas.edu/services/userguides/intel8/fc/f_ug1/pggfmsp.htm

正如可以从URL看到,该文件被组织成130字节或更少字节的"块",并且包括围绕每个组块2长度个字节(由FORTRAN编译器插入).

因此,我需要找到一种有效的方法来解析实际的文件有效负载,而不是插入编译器的格式.

一旦我从文件中提取了实际的有效负载,我就需要将其解析为不同的数据类型.这将是下一个练习.

我的第一个想法是使用将整个文件篡改为字节数组File.ReadAllBytes.然后,只需遍历字节,跳过格式化并将实际数据传输到第二个字节数组.

最后,那第二个字节数组应该包含实际的文件内容减去所有格式,这我倒是则需要通过后面去得到我所需要的.

由于我对C#还不熟悉,我认为可能有一种更好,更可接受的解决方法.

此外,如果它有用,这些文件可能相当大(比如说30MB),但大多数会小得多......

.net c# binary parsing fortran

5
推荐指数
1
解决办法
1285
查看次数

在C#中解析字符串中的多个双精度数

我有一个包含已知数量的double值的字符串.解析字符串并将结果插入匹配的标量变量的最简洁方法(通过C#)是什么?基本上,我想做相当于这个sscanf语句,但在C#中:

sscanf( textBuff, "%lg %lg %lg %lg %lg %lg", &X, &Y, &Z, &I, &J, &K );
Run Code Online (Sandbox Code Playgroud)

...假设" textBuff"可能包含以下内容:

"-1.123    4.234  34.12  126.4  99      22"

......并且每个值之间的空格字符数可能会有所不同.

谢谢你的任何指示.

c# parsing text

3
推荐指数
1
解决办法
2409
查看次数

.NET自定义事件组织帮助

作为相对较新的C#中,我一直在研究自定义事件最近,虽然我觉得我现在明白需要设置一个自定义事件的基础件,我无法确定,其中每一块属于.具体来说,这就是我想要做的.

我有一个树控件,表示内部数据结构的布局.当数据在树中重新排列时(通过拖放),我需要重新排列基础数据结构以匹配.

所以,我试图从树控件的"Drop"事件处理程序中激活我自己的自定义事件(在我验证了drop之后).我的想法是我的事件的订阅者将处理基础数据的重新排序.

我只是在努力确定,其中每件事件机械应建立和/或使用.

如果有人能为我提供上述基本样本,那就太好了.例如,可能是一个简单的示例,用于在现有的button_click事件中设置和触发自定义事件.这似乎是我正在尝试做的很好的模拟.

此外,如果我对这个问题的处理方式看起来完全错误,我也想知道.

.net c# events

3
推荐指数
1
解决办法
2839
查看次数

标签 统计

c# ×5

.net ×3

events ×2

parsing ×2

binary ×1

fortran ×1

istream ×1

text ×1