我喜欢在Visual Studio中使用自动格式化工具CTRL K + CTRL D但是,有时VS会使格式化与我想要的格式相差一点,例如,我正在制作一种依赖于特定注释的详细伪代码和缩进.有没有办法我仍然可以使用CTRL K + CTRL D命令并设置visual studio忽略某段代码或一组行号?另外,如果在VS 2013中有答案但在2012年没有答案,请发布,因为我可能很快就会升级.提前致谢.
标准midi文件使用什么样的编码?
以下是提出这个问题的原因:
with open(path + "/OneChance1.mid") as f:
for line in f.readline():
print(line)
Run Code Online (Sandbox Code Playgroud)
在这里,我只是想读一个midi文件来搜索其内容.然后我收到此错误消息:| UnicodeDecodeError:'charmap'编解码器无法解码153位的字节0x90:字符映射到|
如果我像这样使用open()的第二个参数:UnicodeDecodeError: 'charmap' codec can't decode byte 0x90 in position 153: character maps to <undefined>
然后我收到这个错误:| UnicodeDecodeError:'utf-8'编解码器无法解码位置13中的字节0x80:无效的起始字节|
如果我将编码参数更改为ascii,我会收到有关序数超出范围的另一个错误.最后我尝试了utf-16,它说文件没有以BOM开头(这让我因某种原因而笑).此外,如果我忽略错误,我会得到与我期望的数据类似的字符.我的期望是基于这个来源:http://www.sonicspot.com/guide/midifiles.html
无论如何,有谁知道midi文件使用什么样的编码?我的研究在这方面做得很短,所以我认为值得询问.或者也许有人可以指出其他一些可能性或错误?
多谢你们.
根据MSDN ,我真的觉得我正在遵循最佳实践。但我最有可能失去了一些东西,因为从该行继续后,我的代码,挂起:string errorOutput = cmd.StandardError.ReadToEnd();
。我究竟做错了什么?
var batchfile = File.OpenWrite("run.bat");
StreamWriter writer = new StreamWriter(batchfile);
writer.Write("dotnet run" + '\n');
//writer.Write("set /p temp=\"Hit enter to continue\"" + '\n');
writer.Close();
var cmd = new Process();
cmd.StartInfo.FileName = batchfile.Name;
cmd.StartInfo.UseShellExecute = false;
cmd.StartInfo.RedirectStandardError = true;
cmd.Start();
string errorOutput = cmd.StandardError.ReadToEnd();
cmd.WaitForExit();
var outputfile = File.OpenWrite("run_errorOut.txt");
StreamWriter outputWriter = new StreamWriter(outputfile);
outputWriter.Write(errorOutput);
outputWriter.Close();
Run Code Online (Sandbox Code Playgroud)
如果有帮助:目前此代码正在 dotnetcore2.2 应用程序内的 xunit 测试中运行(其目标框架是“netcoreapp2.2”)。
刚开始使用F#。可能有人请告诉我为什么我不能通过下一步重载需要两个int
参数,并返回int
到我的printNext
功能?据我所知类型正在排队……但这不是编译器所说的。
open System
let r = new Random()
let printNext (nextInt : int -> int -> int) =
let i = nextInt 0 100
printf "%d" i
let t x y = x + y
// compiles fine
printNext t
// compilation error
printNext r.Next
Run Code Online (Sandbox Code Playgroud)