Результат разделения строки JScript \ n delimieter - PullRequest
1 голос
/ 24 февраля 2020

Я очень плохо знаком с 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 не функция`? )

1 Ответ

0 голосов
/ 24 февраля 2020

Найден ответ, спасибо, я разместил полный код, который дал мне нужный ответ, вместе с его результатами ниже

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
...