标签: binary-data

为什么这个程序没有从.bin文件中正确读取(或写入?)?(C++)

我创建了这个程序:

#include <iostream>
#include <fstream>
using namespace std;

int main () {
  fstream file;
  file.open("test.bin", ios::in | ios::out | ios::binary);
  if(!file.is_open())
  {
      return -1;
  }
  int n = 5;
  int x;
  file.write(reinterpret_cast<char*>(&n), sizeof(n));
  file.read(reinterpret_cast<char*>(&x), sizeof(x));
  std::cout<<x;
  file.close();
  std::cin.ignore();
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

应该将整数"n"写入.bin文件"test.bin",然后将数据从"test.bin"读入整数"x",然后在屏幕上显示"x".

当我运行程序时,它不显示5,而是显示-842150451.为什么会发生这种情况,我该如何解决?

c++ file-io binary-data

0
推荐指数
1
解决办法
190
查看次数

将binarydata保存到c#/ silverlight 3中的图像文件中

   byte[] binaryData = new Byte[pngStream.Length];
   long bytesRead = pngStream.Read(binaryData, 0, (int)pngStream.Length);

   string base64String = System.Convert.ToBase64String(binaryData,
                                                          0,
                                                          binaryData.Length);
Run Code Online (Sandbox Code Playgroud)

我有Byte数组的二进制数据.有人知道如何将它保存到silverlight3或c#中的任何图像文件(png或jpg)中吗?

谢谢

c# silverlight image save binary-data

0
推荐指数
1
解决办法
6364
查看次数

如何从MSI文件中获取[二进制数据]值

我正在使用python msilib库读取MSI文件.我的目标是从二进制表中提取[二进制数据]并转储到文件中.(使用ORCA工具,我们可以通过双击[Binary Data]单元格并写入文件来提取二进制数据)

我找不到任何msilib方法来获取二进制数据.它有使用Record.GetString(field)获取字符串数据的方法.但正如预期的那样,这对[二进制数据]不起作用并给出错误.

这是代码片段

import msilib
# msi file path which is to be read
msiFilePath = "C:/msi/test.msi"
dbObj = msilib.OpenDatabase(msiFilePath, msilib.MSIDBOPEN_READONLY)
sqlQuery = "select * from Binary"
view = dbObj.OpenView(sqlQuery)
view.Execute(None)
cur_record = viewObj.Fetch()
# In Binary table; Column no 1 have string data and Column # 2 have [Binary Data]
cur_record.GetString(2)
Run Code Online (Sandbox Code Playgroud)

执行时: -

Traceback (most recent call last):
File "<pyshell#17>", line 1, in <module>
cur_record.GetString(2)
_msi.MSIError: unknown error 70c
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?

python windows-installer binary-data

0
推荐指数
1
解决办法
1165
查看次数

使用二进制格式的Java在数据库中存储图像

我正在解决我的项目并遇到一些问题,我搜索了它,但找不到完整的学习资源,我需要的是使用我的Java程序将图像存储在SQL Server数据库中,并且需要返回检索,图像尺寸不大,介于30到50 K之间,我可以使用toolKit中的getImage()方法从我的磁盘加载图像

Image imm = Toolkit.getDefaultToolkit().getImage("URl");
Run Code Online (Sandbox Code Playgroud)

,但我不知道如何将该图像转换为二进制格式并存储在数据库中,然后检索从数据库返回.我想通过查看几个站点将它存储在VarBinary中,我发现SQL Server中的图像类型很快就会退回.

java swing image binary-data sql-server-2008-r2

0
推荐指数
1
解决办法
9263
查看次数

赋值运算符 - 每个成员还是二进制副本?

我想知道,只要所有包含的赋值都没有副作用,除了将二进制值传递给地址,将源对象指针中的字节复制到目标而不是将每个目标成员分配给每个目标成员都不是更有效来源会员?

作为一个子问题...我想知道读取模式如何影响内存控制器负载.显然,当MC从正确对齐的地址读取其全宽时,它是最有效的.也许将所有成员合并为一系列最大宽数据类型以进行对齐会更有效,例如,如果MC为64位且成员数据集为10个字节,则复制64位和16位值,即使成员说10 char秒,所以复制这种方式会使MC比一次复制每个成员字符更好.

c++ copy binary-data variable-assignment

0
推荐指数
1
解决办法
246
查看次数

将Javascript Uint8Array的内容打印为原始字节

我有一个用Java语言编写的Uint8Array,我想将其内容打印到控制台,例如

255, 19, 42, 0
Run Code Online (Sandbox Code Playgroud)

这是我的代码,当前显示一个空字符串

    var bytes = new Uint8Array(data);

    var debugBytes = "";
    for(var i=0; i<bytes.byteLength; i++) {
        debugBytes.concat(bytes[i].toString());
        debugBytes.concat(",");
    }

    console.log('Processing packet [' + bytes[1] + '] ' + debugBytes);
Run Code Online (Sandbox Code Playgroud)

如果设置了断点,我可以在调试器中看到数据,因此字节肯定会被填充。当我尝试通过另一种方法进行打印时,它将所有字节转换为ASCII,但是我的数据大部分不在ASCII可打印范围内。

JavaScript中有与printf()等效的东西吗?

javascript string binary-data

0
推荐指数
1
解决办法
6403
查看次数

异步写二进制?

我正在尝试使旧方法异步。
它从数据库中获取 BLOB 并将其作为文件写入磁盘。

但是,没有异步版本的BinaryWriter.
我可以用StreamWriter代替吗?因为它有WriteAsync方法。有什么区别?有什么缺点吗?

部分代码:

OracleParameter returnParam = new OracleParameter("blob", OracleDbType.Blob);
command.Parameters.Add(returnParam);

await command.ExecuteNonQueryAsync();

OracleBlob blob = returnParam.Value as OracleBlob;

byte[] data = new byte[blob.Length];

await blob.ReadAsync(data, 0, Convert.ToInt32(blob.Length));

fileFullPath = Path.Combine(folder, fileName);

using (FileStream fs = new FileStream(fileFullPath, FileMode.OpenOrCreate, FileAccess.Write))
{
    using (BinaryWriter bw = new BinaryWriter(fs))
    {
        bw.Write(data); //NO ASYNC METHOD HERE
        logger.Debug("Finished writing file {0} to disk", fileFullPath);
    }
}
Run Code Online (Sandbox Code Playgroud)

我可以改成下面这样吗?

OracleParameter returnParam = new OracleParameter("blob", OracleDbType.Blob);
command.Parameters.Add(returnParam);

await …
Run Code Online (Sandbox Code Playgroud)

.net c# binary-data streamwriter async-await

0
推荐指数
1
解决办法
515
查看次数

将流叠加在字节数组之上

C#/.NET 中是否有任何方法可以“叠加”或映射 a 到现有就地MemoryStream之上,以便数据不会被不必要地复制?byte[]

在尝试将 a 转换byte[]为流时,标准解决方案是使用 theMemoryStream及其Write函数,如下所示:

byte[] myArray = new byte[10]; // or, e.g. retrieve from DB
MemoryStream stream = new MemoryStream();
stream.Write(myArray, 0, myArray.Length);
Run Code Online (Sandbox Code Playgroud)

或者,这可以缩短为:

byte[] myArray = new byte[10]; // or, e.g. retrieve from DB
MemoryStream stream = new MemoryStream(myArray);
Run Code Online (Sandbox Code Playgroud)

这实际上是同一件事。

这样做的问题是必须将数组的全部内容复制到流中,从而占用 2 倍的内存。考虑到字节数组可能非常大,这似乎不太令人满意。数据已经在内存中的连续块中,所以......

内存流可以以某种方式就地映射到字节数组吗?

.net c# binary-data .net-core

0
推荐指数
1
解决办法
223
查看次数

为什么第二次使用 fread() 不是从头而是从第一次 fread() 读取的结尾读取文件?

我想hdrin.wav文件中的数据填充(struct) 变量,我想将文件的前 64 个字节复制in.wav到另一个文件 ( out.wav)。

但!fread()第二次使用时,in.wavfread()第一次使用结束的地方开始复制。为什么?

#include <stdio.h>
#include <stdlib.h>

typedef struct FMT
{
    char        SubChunk1ID[4];
    int         SubChunk1Size;
    short int   AudioFormat;
    short int   NumChannels;
    int         SampleRate;
    int         ByteRate;
    short int   BlockAlign;
    short int   BitsPerSample;
} fmt;

typedef struct DATA
{
    char        Subchunk2ID[4];
    int         Subchunk2Size;
    int         Data[441000]; // 10 secs of garbage. he-he)
} data;

typedef struct HEADER
{
    char        ChunkID[4];
    int         ChunkSize;
    char        Format[4];
    fmt         S1; …
Run Code Online (Sandbox Code Playgroud)

c file binary-data fread

-1
推荐指数
1
解决办法
4583
查看次数

在C++中显示浮点类型的二进制表示

请考虑以下用于整数类型的代码:

template <class T>
std::string as_binary_string( T value ) {
    return std::bitset<sizeof( T ) * 8>( value ).to_string();
}

int main() {
    unsigned char a(2);
    char          b(4);

    unsigned short c(2);
    short          d(4);

    unsigned int   e(2);
    int            f(4);

    unsigned long long g(2);
    long long h(4);

    std::cout << "a = " << +a << " " << as_binary_string( a ) << std::endl;
    std::cout << "b = " << +b << " " << as_binary_string( b ) << std::endl;
    std::cout << "c = …
Run Code Online (Sandbox Code Playgroud)

c++ std binary-data bitset

-2
推荐指数
1
解决办法
1138
查看次数

如何解码Base64?

正如所看到的在这里,他们也行ZG9udGJlYWhhdGVyc3RhcnR1cCtoYWNrZXJuZXdzQGdtYWlsLmNvbQ==.

如何解码这一系列的Base64?

base64 encoding decode binary-data radix

-8
推荐指数
1
解决办法
1859
查看次数