我需要通过 HTTP URL 将一些图像导出到我的 SQL Server。
我找到了关于导出 XML 数据的文章:
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'Ole Automation Procedures', 1;
GO
RECONFIGURE;
GO
Declare @Object as Int;
Declare @ResponseText as Varchar(8000);
Declare @Url as Varchar(MAX);
select @Url = 'http://somexml.com/xmlfile.xml'
Exec sp_OACreate 'MSXML2.XMLHTTP', @Object OUT;
Exec sp_OAMethod @Object, 'open', NULL, 'get', @Url, 'false'
Exec sp_OAMethod @Object, 'send'
Exec sp_OAMethod @Object, 'responseText', @ResponseText OUTPUT
Exec sp_OADestroy @Object
--load into Xml
Declare @XmlResponse as xml;
select @ResponseText
Run Code Online (Sandbox Code Playgroud)
同样在研究期间,我发现我应该对二进制数据使用ADODB.Stream。但我无法弄清楚如何使用上述方法读取此对象。有没有办法在纯 TSQL …
我正在尝试计算二进制文件中符号的频率c#,我已经在c ++中完成了,并且工作正常,我已经从c ++切换到c#因为我必须在c#中实现相同的.
注意:我不必使用LUT/Arrays只能使用链表.
通过frequency我的意思是符号的重复,并以数字symbols我的意思是如果我们看到使用的二进制文件xxd -b BinaryFile.bin,然后我们会得到很多8 bits的组合0和1.那么每个符号重复的次数是它的频率.
现在,我是如何尝试这样做的:
我c#通过mono filename.exe BinaryFile.bin在终端上用notepad ++中的文件名编写代码来实现它.
逻辑: 我读取BinaryFile中的每个符号,如果没有重复,那么我将它添加到链表的尾部,如果它重复,那么我增加它的频率.我重复完整的二进制文件.
码:
代码为c#(完整):(哪些不能正常工作,我已经指出问题包含代码的一部分,我把完整的代码,因为可能你需要它):
////Problem containing part starts here ////////
public Huffman(string[] args) //called from MyClass
{
Node tree = null;
int counter = 0;
using(var stream = new BinaryReader(System.IO.File.OpenRead(args[0])))
{
while (stream.BaseStream.Position < stream.BaseStream.Length)
{
int processingValue = stream.ReadByte();
Node ppt, pt, temp;
bool is_there = false; …Run Code Online (Sandbox Code Playgroud) 所以可以说我有以下值:
HEADER01 48 45 41 44 45 52 30 31
06/17/14 30 36 2F 31 37 2F 31 34
1.0 31 2E 30
0x0000 00
0x0027 27
0x0001 01
0x0001 01
0x0001 01
0x0001 01
0x0028 28
192 C0
168 A8
1 01
1 01
Run Code Online (Sandbox Code Playgroud)
前 3 个值是 STRINGS,应转换为 ASCII HEX 值,然后写入 .bin 文件
接下来的 7 个值是 HEX,应按原样写入 .bin 文件
最后4个值是INTEGERS,应该转换成HEX,然后写入.bin文件
OUTPUT (.bin) 文件应如下所示:
00000000 48 45 41 44 45 52 30 31 30 36 2F 31 37 2F 31 …Run Code Online (Sandbox Code Playgroud)我一直在尝试使用 logrotate 根据大小旋转二进制文件,但该程序似乎不适用于二进制文件。就其价值而言,这是我用于此特定文件的配置:
<filepath> {
copytruncate
compress
missingok
size 10M
rotate 100
nomail
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以建议一个可以处理二进制文件并具有与 logrotate 相同的基本功能的程序吗?
我在从二进制文件复制和写入文本文件时遇到问题。我编写了一个能够从文本文件复制并写入二进制文件的程序,但我不能反过来。
这是我遇到问题的功能:
void CopyBin2Text(char* rafname, char* txtname)
{
FILE * fraf = fopen(rafname,"rb");
FILE * ftxt = fopen(txtname,"r+");
//READ FROM BINARY FILE
struct PERSON p;
int ByteOfBin;
printf("ID \t NAME \t\t BALANCE \n");
printf("---------------------------------------\n");
Run Code Online (Sandbox Code Playgroud)
当我运行我的程序时,它在打印上述语句后停止在这里
while(!feof(fraf))
{
fscanf(fraf, "%d %s %f", &p.ID, p.name, &p.balance);
ByteOfBin = ((p.ID/10-1)*sizeof(p));
fseek(ftxt,ByteOfBin, SEEK_SET);
fwrite((char *)&p, sizeof(p), 1, ftxt);
}
fclose(fraf);
fclose(ftxt);
}
Run Code Online (Sandbox Code Playgroud)
我注意到的另一个问题是文本文件变得太大而无法打开。结果是我必须删除文本文件并重新创建它。任何人都可以解释导致这种情况发生的原因吗?
我需要编写一个程序来生成 N 个随机数并按降序将它们写入二进制文件。它应该在不使用任何使用主内存的排序算法的情况下完成。这是我到目前为止所做的:
#include <iostream>
#include <fstream>
#include <ctime>
#include <cstdlib>
using namespace std;
int main () {
srand(time(0));
rand();
int N;
do{
cout << "Unesite N: ";
cin >> N;
} while(N<=0);
ofstream br("broj.dat", ios::binary | ios::trunc);
for(int i = 0; i<N; i++){
int a = rand();
br.write((char *)&a, sizeof(a));
}
br.close();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
所以,我生成了随机数并将它们写入二进制文件,但我不知道如何对其进行排序。
当我过去经常处理 .CON 文件(游戏将在 Xbox 360 上使用的本机文件格式)时,我记得在使用十六进制编辑器查看这些文件时看到这些文件中的文本由空字节分隔。
今天我还注意到,在使用 SQLite 浏览器查看来自 Chrome 的本地存储文件时;存储为二进制/blob 值的所有文本字段,如下所示:
22007700730073003a002f002f006700
6100740065007700610079002e006400
6900730063006f00720064002e006700
67002200
Run Code Online (Sandbox Code Playgroud)
空字节是怎么回事?这是不同类型的字符编码吗?我认为它不可能是 utf8,因为 utf8 不会使用两个字节来编码 ascii 范围内的字符,但也许我错了?
我想编写一个生成短音频文件(最好是 WAV)的小型 Web 应用程序。
音频文件将非常简单,如下所示:
例如。用户输入:
350 1000
500 1000
Run Code Online (Sandbox Code Playgroud)
输出:两秒的 WAV 文件,第一秒是 350Hz 音调,第二秒是 500Hz 音调,就像在这个发生器中一样。
是否可以使用 PHP 来做到这一点?
我正在尝试使用 Node.js 处理二进制文件。
我正在尝试从客户端接收二进制文件,打开二进制文件,转换为十六进制,替换数据并将新的二进制文件返回给客户端。
app.use('/read-binary-file',(req,res) => {
try {
let content = fs.readFileSync(file_path);
console.log('content', content)
res.status(200).send({content})
}
catch(err) {
console.error(err);
}
})
Run Code Online (Sandbox Code Playgroud)
我编写了采用现有文件并尝试读取它的代码。当我打印它时,我在缓冲区中得到它:
content <Buffer 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ... >
Run Code Online (Sandbox Code Playgroud)
我不确定如何将其转换为十六进制,然后尝试更改它...当我通过在线十六进制编辑器读取文件时,我将它们每行 16 位,这种方式非常方便。 …
我有以下代码:
LZW lzw = new LZW();
int[] a = lzw.Encode(imageBytes);
FileStream fs = new FileStream("image-text-16.txt", FileMode.Append);
BinaryWriter w = new BinaryWriter(fs);
for (int i = 0; i < a.Length; i++)
{
w.Write(a[i]);
}
w.Close();
fs.Close();
Run Code Online (Sandbox Code Playgroud)
如何从文件中读取数组元素?我尝试了几种方法.例如,我将数组的长度写入文件,我试着读取数字.但是,我失败了.
注意.我需要获取int数组.
binaryfiles ×10
c# ×3
algorithm ×2
binary ×2
c++ ×2
file ×2
.net ×1
audio ×1
bytearray ×1
c ×1
express ×1
hex ×1
http ×1
javascript ×1
linked-list ×1
linux ×1
logrotate ×1
node.js ×1
php ×1
random ×1
sorting ×1
sql-server ×1
t-sql ×1
text-files ×1
utf-8 ×1