问题标签 [binary-data]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - C#,写入二进制数据
我在写入二进制文件时遇到问题。
问题是它错误地写入文件。大多数情况下它会正确写入信息,但一旦超过127
它就会写入63
(3F
错误的表示)直到255
.
然后它重复这个错误,直到512
。
错误可能是什么?
performance - 具有二进制数据/图像的表中的性能
我做了一个人员维护屏幕。客户希望我将每个人的照片存储在数据库中,我做到了没有问题。我有一个单独的表格,用于包含两个字段 Id_person 和 Image 的图像。
我有点担心,因为这是我第一次使用数据库中的图像。当表格超过 1000/5000 个图像时,我会遇到性能问题吗?我想每张图片的大小都会有所不同。我确信我需要控制用户不要在数据库中保存非常大的图像。
什么是好的尺寸限制?客户只需要面部照片,但我相信有人会尝试使用“最后一个模型”相机制作全质量照片;)
谢谢。
java - 用于从 .img、.osc 和 .mccd 文件中读取元数据的 Java 库
我需要从 .img、.osc 和 .mccd 文件中读取元数据。
你能推荐任何图书馆或提供任何关于我将如何去做的指针。最终,我需要将该元数据放入一个 XML 文件中,以便存储库可以获取它。
ruby - 使用 Ruby 创建二进制数据?
我正在使用 ruby 套接字,所以我最终尝试将一个 IP 数据包放在一起,然后我拿了一个 ip 数据包并尝试制作一个像它一样的新数据包。
现在我的问题是:如果数据包是:45 00 00 54 00 00 40 00 40 01 06 e0 7f 00 00 01 7f 00 00 01
,这显然是十六进制,所以我将其转换为十进制,然后使用 .pack 方法转换为二进制数据,并将其传递给 send 方法,然后Wireshark
显示给我与我创建的东西非常奇怪的不同,我做错了什么???,我知道,但无法弄清楚:
还有另一种方法可以解决整个问题吗?例如,我可以直接将要发送的数据写入套接字缓冲区吗?
提前致谢。
c# - 读/写压缩的二进制数据
我到处读到人们谈论一点一点地压缩对象的地方。诸如“前三位代表某某,接下来的两位代表这个,十二位代表那个”
我理解为什么需要尽量减少内存使用,但我想不出一个好的方法来实现这一点。我知道我会将它打包成一个或多个整数(或长整数,等等),但我无法想象一种简单的方法来使用它。如果有一个类可以让我从任意长度的二进制字段中获取/设置任意位,那将是非常酷的,它会为我处理好事情,而且我不必胡乱处理 &'s 和 |' s和面具等等。
这种事情有标准模式吗?
sql-server - 克服在 DataGridView 中显示二进制列的 .NET 问题
如果 DataSet 包含作为时间戳或其他二进制值的列,则在显示该列中的任何数据时,其关联的 DataGridView 将引发 ArgumentException。也就是说,假设您有一些包含二进制列的表,例如:
在 Visual Studio 2008 中,添加一个指向可疑表的新数据源。将表格从数据源资源管理器拖到新 WinForm 的可视化设计器表面上,以自动创建 DataGridView、BindingSource 等。执行应用程序,您将获得运行时异常。听起来像个缺陷,对吧?
如果您检查 DataGridView 的 Columns 集合,您会发现它将列类型设置为 DataGridViewImageColumn。为什么?因为,根据微软的说法,.NET 假定二进制列是图像。事实上,微软确认这种行为是设计使然!请参阅 Microsoft Connect 上的此缺陷报告:http ://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=93639
正如对话框礼貌地指出的那样,可以通过处理 DataGridView 的 DataError 事件来抑制错误对话框,但这引出了问题。我想找到一种方法来避免首先出现错误情况。也就是说,我想要一个 DataGridViewTextColumn 显示二进制数据的文本表示,例如“0x1234a8e9433bb2”。我正在寻找一个通用的解决方案,因为我的实际代码没有使用上面示例中的特定表。相反,我将一些任意查询放入 dataAdapter.SelectCommand,然后调用
自动生成我的数据表。由于 DataGridView 有(恕我直言)错误,我想我需要检查数据表的列(即 dataTable.Columns[n].DataType.Name.Equals("Byte[]") ?)并在我将 dataTable 连接到 DataGridView 之前手动将任何字节数组转换为它们的文本形式
那我的问题:
有没有更简单或更优雅的方式在 DataGridView 中显示二进制列?
(请注意,VS 2005 和 VS 2008、.NET 2.0 和 .NET 3.5 都存在此问题。)
c# - 并行二进制反序列化?
我有一个解决方案,我需要非常快速地将对象读入内存,但是二进制流可能会缓存在内存中压缩以节省磁盘 io 上的时间。
我已经修改了不同的解决方案,显然 XmlTextWriter 和 XmlTextReader 不是那么好,内置的二进制序列化也不是。Protobuf-net 非常好,但还是有点太慢了。以下是一些统计数据:
文件大小 XML:217 kb
文件大小二进制:87 kb
压缩二进制:26 KB
压缩的 XML:26 KB
使用 XML (XmlTextReader) 反序列化:8.4 sek
使用二进制反序列化(Protobuf-net):6.2 sek
使用 Binary wo string.interning (Protobuf-net) 反序列化:5.2 sek
使用内存中的二进制反序列化:5.9 Sek
将二进制文件解压到内存的时间:1.8 sek
使用 Xml (XmlTextWriter) 序列化:11 sek
使用二进制序列化(Protobuf):4 sek
使用二进制长度前缀序列化(Protobuf-net):3.8 sek
这让我想到,似乎(如果我错了,请纠正我)反序列化的主要罪魁祸首是实际的字节转换而不是 IO。如果是这样,那么它应该是使用新的并行扩展的候选者。
由于我在二进制 IO 方面有点新手,但在我投入时间解决之前,我会很感激一些输入:)
为简单起见,假设我们要反序列化一个没有可选字段的对象列表。我的第一个想法是简单地存储每个长度前缀。将每个的 byte[] 读入 byte[] 列表并使用 PLINQ 进行 byte[] -> 对象反序列化。
但是,使用这种方法,我仍然需要单线程读取 byte[],所以也许可以将整个二进制流读入内存(顺便说一句,二进制文件有多大?)并在二进制文件的开头存储如何有许多对象,每个对象的长度和偏移量。然后我应该能够创建 ArraySegments 或其他东西并并行进行分块。
那你们怎么看,可行吗?
mysql - 固定宽度二进制数据的理想字段类型
如果我想存储二进制数据(哈希值)并且它们总是 128 字节长,我应该使用什么字段类型?BLOB
s 很好,但它们不是固定宽度(并导致动态表).. CHAR
需要一个字符集。
c# - 在 C# 中将大文件读入字节数组的最佳方法?
我有一个 Web 服务器,它将大型二进制文件(几兆字节)读入字节数组。服务器可能同时读取多个文件(不同的页面请求),因此我正在寻找最优化的方法来执行此操作,而不会过多地占用 CPU。下面的代码足够好吗?
svn - 如果文件大小固定,我如何让 SVN 实现二进制文件的更改
我正在使用一个程序,该程序将数据写入我存储在颠覆档案中的固定大小的二进制文件。
然而,问题是 SVN(命令行客户端和 TortiseSVN)认为由于文件的大小没有改变,文件本身没有改变,它不应该提交它。
有没有办法改变使用的差异方法,还是我必须求助于诸如向文件添加虚拟属性之类的技巧?
编辑:原来解决方案不是因为文件大小的事情。我只是自动假设会是这种情况,因为大多数 nieve diffing altorithims 一直都在这样做。 [黄鼠狼的话]