簡體   English   中英

JScript 通過 \\n 分隔符拆分字符串結果

[英]JScript Split String Result by \n delimieter

我對 JScript 和 Windows 腳本非常陌生,我有一些從文件中讀取並轉換為字符串的數據,我想將這些數據拆分為兩個數據數組,以便它們可以單獨使用。 當我從文件輸出時,數據看起來像這樣,顯示由換行符分隔的兩個部分。 如果我使用 (" ") 拆分數據,它會正確分隔每個數字,但是我想先將兩組數據分開后再執行此操作。

5.000000 9.000000 3.000000 7.000000 1.000000 4.000000 6.000000 2.000000 8.000000 0.000000 
2464.000000 2464.000000 616.000000 2464.000000 154.000000 1232.000000 2464.000000 308.000000 2464.000000 77.000000 

當我運行代碼來拆分兩部分時,我收到了這個結果

res 0 = 5.000000 9.000000 3.000000 7.000000 1.000000 4.000000 6.000000 2.000000 8.000000 0.000000 ,2464.000000 2464.000000 616.000000 2464.000000 154.000000 1232.000000 2464.000000 308.000000 2464.000000 77.000000 
res 1 = undefined

這是我用來生成上述輸出的代碼

//Outputs 1
for( let i=0; i<data.length; i++) {
  println(data[i]);
  }
data = data + ''; //Convert Data from object to String
var res = data.split("\n")
//Outputs 2
console.log("res 0 = " + res[0]);
console.log("res 1 = " + res[1]);

這是我想要的結果

res 0 = 5.000000 9.000000 3.000000 7.000000 1.000000 4.000000 6.000000 2.000000 8.000000 0.000000
res 1 = 2464.000000 2464.000000 616.000000 2464.000000 154.000000 1232.000000 2464.000000 308.000000 2464.000000 77.000000

編輯:讀取數據的代碼

function dataRead(fname) {
  console.log("Reading sequence...");
  var fs = WScript.CreateObject("Scripting.FileSystemObject");
  var lines = [];
  var stream = fs.OpenTextFile(fname);
  while(!stream.AtEndOfStream) {
    lines.push(stream.ReadLine());
  }

  stream.Close();

  return lines;
}

編輯:寫入數據的 Matlab 代碼

data = [T.seq; T.duration_bits];
    newfile = [dir '\' name '.txt']
    fp = fopen(newfile, 'w');
    fprintf(fp,'%f ', data(1,:));
    fprintf(fp,'\n');
    fprintf(fp,'%f ', data(2,:));
    fclose(fp);

(對象到字符串來自什么導致錯誤`string.split is not a function`?

找到答案,謝謝,我已經發布了給我想要的答案的完整代碼,以及下面的輸出

var data = import_sequence(path_func, path, file, ext);
for( let i=0; i<data.length; i++) {
  println(data[i]);
  }
var seq = data[0];
seq = seq.split(" ").map(Number);
seq.pop();
console.log("seq = "+ seq);

var dur_bits = data[1];
dur_bits = dur_bits.split(" ").map(Number);
dur_bits.pop();
console.log("dur_bits = " + dur_bits);
}
console.log("dur = " + dur);

輸出

Reading sequence...
Data Line0 = 5.000000 9.000000 3.000000 7.000000 1.000000 4.000000 6.000000 2.000000 8.000000 0.000000 
Data Line1 = 2464.000000 2464.000000 616.000000 2464.000000 154.000000 1232.000000 2464.000000 308.000000 2464.000000 77.000000 
seq = 5,9,3,7,1,4,6,2,8,0
dur_bits = 2464,2464,616,2464,154,1232,2464,308,2464,77

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM