...

View Full Version : Split function problem



Laforfo
05-06-2008, 08:57 AM
Hi all,

I have a problem with split function in javascript.Here is my coding:

findMin();

function findMin(){

var ForReading = 1, ForWriting = 2; //init fso constant

var fso = new ActiveXObject("Scripting.FileSystemObject"), f, fc, s;
var j = fso.OpenTextFile("C:\\Testing3.txt", ForReading);
var k = fso.OpenTextFile("C:\\Testing23.txt", 2, true, 0);

while(!j.AtEndOfStream){
var t = j.ReadLine();
var myArray=t.split("\n");}
k.WriteLine(myArray[0]);
}

what i want to do is open 2 file,one for read and one for write.I open 1 file that consist of list of filename like:

morp1.txt
morp2.txt

then i will split the file by "\n" and put it on array which in this case is myArray.finally i will output the value of the array on a file.

the problem is that the output will have one extra line after the actual output for example when i try to write the value of myArray[0] the output will be:

1.morp1.txt
2.

the number just to indicate line number.can anyone tell me how to eliminate the last "invisible" line

thanks in advance

Arty Effem
05-06-2008, 12:21 PM
var myArray=t.split("\n");}
k.WriteLine(myArray[0]);
}

I would try these in descending order of preference:

var myArray=t.split(/\r\n?/);

//or

var myArray=t.replace(/\r/g,"").split("\n");

//or

k.WriteLine(myArray[0].replace(/\r/g,""));

Laforfo
05-07-2008, 02:19 AM
hi Arty,

Thanks for your reply.I tried all three method that you gave me but still doesn't solve the problem.the "invisible" line still appear at the very end of the line.

I wrote the coding above just to highlight the problem that i have but what i actually want to do is more than just write the value of the array.here is the coding:

findMin();

function findMin(){

var ForReading = 1, ForWriting = 2; //init fso constant

var fso = new ActiveXObject("Scripting.FileSystemObject"), f, fc, s;
var j = fso.OpenTextFile("C:\\Testing3.txt", ForReading);
var k = fso.OpenTextFile("C:\\Testing23.txt", 2, true, 0);

while(!j.AtEndOfStream){
var t = j.ReadLine();
var myArray=t.split("\n");}
for(u=809; u<=836; u++){
for(i=0; i<=myArray.length; i++){
var p = fso.OpenTextFile("D:\\MyTask\\40.09\\Combine\\"+myArray[i]);
var q = p.ReadAll();
var myArray2=q.split("\n");
var r = myArray2[u];
var minValue = r.substring(59,63);
k.WriteLine(minValue);
}
}
}

from the coding you can see that I want to read all line from file testing3.txt than split it into an array because I want the data from the myArray[809] to myArray[836] which explain the for loop.the problem is in this line:

var p = fso.OpenTextFile("D:\\MyTask\\40.09\\Combine\\"+myArray[i]);

the error massage is "file not found".this is because the output of myArray[i] is not D:\\MyTask\\40.09\\Combine\\Morp1.txt (which i intend to open) but rather the program try to open filename with the invisible line at the end of Morp1.txt.so it cannot found the file.another method that I tried is using the enumerator as below:

findMin();

function findMin(){

var ForReading = 1, ForWriting = 2; //init fso constant

var fso = new ActiveXObject("Scripting.FileSystemObject"), f, fc, s;
file = fso.GetFolder("D:\\MyTask\\40.09\\Combine");
var j = fso.OpenTextFile("C:\\testing23.txt", ForWriting, true, 0);

f = fso.GetFolder(file);
fc = new Enumerator(f.files);
for(var u=809; u<=836; u++){
for (fc.moveFirst; !fc.atEnd(); fc.moveNext()){
s = fc.item();
var t = fso.OpenTextFile("D:\\MyTask\\40.09\\Combine\\"+s.name);
var s = t.ReadAll();
var myArray=s.split("\n");
var q = myArray[u];
var minValue = q.substring(59,63);
j.WriteLine(minValue);
}
}
}

the above coding have a similar purpose.but the coding doesn't loop to second line(810).it only go to the first line(809) but stop there.

anyone can advice please help.

thanks in advance



EZ Archive Ads Plugin for vBulletin Copyright 2006 Computer Help Forum