Javascript 可以像读取txt文件一样读取cpp文件吗? 我在做一个基于Web的C++ IDE类项目。我想添加一个打开按钮,用户不仅可以打开一个文本文件(使用该按钮),还可以打开一个.cpp文件。有可能吗
下面是打开.txt文件并附加到我的contenteditable div的代码Javascript 可以像读取txt文件一样读取cpp文件吗? 我在做一个基于Web的C++ IDE类项目。我想添加一个打开按钮,用户不仅可以打开一个文本文件(使用该按钮),还可以打开一个.cpp文件。有可能吗,javascript,c++,Javascript,C++,下面是打开.txt文件并附加到我的contenteditable div的代码 function readSingleFile(evt) { var f = evt.target.files[0]; //console.log(f); if (!f) { alert("Failed to load file"); return; } if (f.name.indexOf('.txt') == -
function readSingleFile(evt) {
var f = evt.target.files[0];
//console.log(f);
if (!f) {
alert("Failed to load file");
return;
}
if (f.name.indexOf('.txt') == -1) {
alert(f.name + " is not a valid text file.");
return;
}
var r = new FileReader();
r.onload = function (e) {
var contents = e.target.result; //.replace("\r\n","<br/>");
contents = contents.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"');
alert("Got the file.n" + "name: " + f.name + "n" + "type: " + f.type + "n" + "size: " + f.size + " bytesn" + "contents: " + contents);
var tmpSent = "";
var newContents = "";
for (var i = 0; i < contents.length; i++) {
if(contents.charAt(i) == '\n') {
newContents += "<div>"+tmpSent+"</div>";
tmpSent = "";
}
else
tmpSent += contents.charAt(i);
};
if(tmpSent.length>0)
newContents += "<div>"+tmpSent+"</div>";
console.log(newContents);
document.getElementById('board').innerHTML = newContents;
}
r.readAsText(f);
}
document.getElementById('fileinput').addEventListener('change', readSingleFile, false);
函数readSingleFile(evt){
var f=evt.target.files[0];
//控制台日志(f);
如果(!f){
警报(“加载文件失败”);
返回;
}
if(f.name.indexOf('.txt')=-1){
警报(f.name+“不是有效的文本文件。”);
返回;
}
var r=新文件读取器();
r、 onload=函数(e){
var contents=e.target.result;//.replace(“\r\n”和“”); contents=contents.replace(//&/g',&;')。replace(//g',)。replace(//“/g',”); 警报(“获取文件.n”+”名称:“+f.name+”n“+”类型:“+f.type+”n“+”大小:“+f.size+”bytesn“+”内容:“+contents”); var tmpSent=“”; var newContents=“”; 对于(变量i=0;i
查看呈现的代码,我发现它只强制打开.txt文件
if (f.name.indexOf('.txt') == -1) {
alert(f.name + " is not a valid text file.");
return;
}
如果您想保持相同的方法,我会在其中添加一个.cpp的检查
不确定涉及的其他代码,但我会使用一个打开的文件对话框,该对话框只允许您需要的文件扩展名,这将使所提到的检查变得多余。a
.cpp
文件通常是一个文本文件。为什么会有什么不同?cpp是一个包含多个文本的文本文件,是吗?在windows上,文件扩展名仅用于将特定文件与可处理该文件的程序关联。因此,正如其他人所建议的那样——常规文本文件与c/c++源文件(从您的角度来看)没有什么不同。格式化c/c++文件是另一回事。我认为没有必要进行扩展名检查。如果他们想要编辑ini文件或生成文件,该怎么办?为什么只为一种文件创建一个编辑器,除非它解析该格式?