![]() |
| ||
| Reading .dat file data into an array Hi all... My first post in this forum... The problem is that of the String.Split method... I cant seem to get the String.Split method to work as I wanted... My objective is to try to read the data which are three columns of numbers and try to array them so that I can use them as points for contour plotting. The following is the data displayed in the file I tried to read from. 20311 20316 20321 20312 20317 20322 20313 20318 20323 20314 20319 20324 20315 20320 20325 My method is as follow: while(objInput.Peek()>-1) { string strLine = objInput.ReadLine(); string [] split = strLine.Split(new Char [] {' '}); } After which I can then initialise the split[0], split[1], split[2] etc to whatever arraylist i am going to use. However, these values are displayed as null value (blank) when I tried to console.writeline them. The strange thing is when I edited the .dat file which I used to read the strings, and placed a comma instead of just spaces in between the words as illustrated below, the split method worked out fine when I used the following code in place of the above code. 20311 ,20316 ,20321 20312 ,20317 ,20322 20313 ,20318 ,20323 20314 ,20319 ,20324 20315 ,20320 ,20325 while(objInput.Peek()>-1) { string strLine = objInput.ReadLine(); string [] split = strLine.Split(new Char [] {','}); } Can anyone help me with this problem? Did I use the String.Split method wrongly? Or what did I not do? |
| ||
| Re: Reading .dat file data into an array Hi, i tried out your code and it seems to work even with the spaces, however one remark: i don't know if it was your intention to initialize the split variable inside the loop...so keep in mind that it will be overwritten all the time and just keeps the latest 3 values (from the last readline) |
| ||
| Re: Reading .dat file data into an array hrm... I understand where the error comes from already. It comes from the spaces before the numbers... which I never put in my question. The actual display is as shown below: (spaces) 20311 20316 20321 (spaces) 20312 20317 20322 (spaces) 20313 20318 20323 (spaces) 20314 20319 20324 (spaces) 20315 20320 20325 and not the following: 20311 20316 20321 20312 20317 20322 20313 20318 20323 20314 20319 20324 20315 20320 20325 So, how do I solve this kind of problem? |
| ||
| Re: Reading .dat file data into an array StreamReader objInput = new StreamReader("C:\\values.dat", System.Text.Encoding.Default); |
| ||
| Re: Reading .dat file data into an array Wow... Thanks alot, rOckbaer! It worked perfectly! I will now try to read them into an array. Any idea how it can be done? Its of two dimensional array, right? |
| ||
| Re: Reading .dat file data into an array string [] split = System.Text.RegularExpressions.Regex.Split(contents, "\\s+", RegexOptions.None);split is already a string array |
| ||
| Re: Reading .dat file data into an array Thanks again! May I know what the \\s+ means? Cant seem to find it on the web. |
| ||
| Re: Reading .dat file data into an array \s+ is a regular expression, the \s means to consider whitespaces and the + means to consider at least 1 occurence or more of them |
| ||
| Re: Reading .dat file data into an array Ah.... IcIc... Thats exactly what I need! No wonder it worked perfectly! Thanks alot! |
| ||
| Re: Reading .dat file data into an array Quote:
I don't know if you are still around... What do I need to modify in the "System.Text.RegularExpressions.Regex.Split(contents, "\\s+", RegexOptions.None);" so the string will also expect whitespaces? For example, in the .dat file you have: Hello Word Test1 Test2 Test3 If you noticed, I have whitespaces between each words, I want to keep that. so string[0] = Hello string[1] = " " string[2] = Word string[3] = " " string[4] = Test1 string[5] = " " .. ..... and so on. Can this be done using the same Regex? |
| All times are GMT -4. The time now is 4:52 pm. |
Forum system based on vBulletin Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
©2003 - 2009 DaniWeb® LLC