reading from a file

Posted on 2006-06-19
Medium Priority
Last Modified: 2010-04-16
hi there , i have a very a problem when i read from a file to my App
i am on WinForm c# .

this is the code that read the file :

                  IDbCommand cmdGetPath = sqlConnection1.CreateCommand();


                  cmdGetPath.CommandText="Select @FilePath=FileToReadPath from Bakara";
                  SqlParameter path = new SqlParameter("@FilePath",SqlDbType.VarChar,50);



                  string FilePath=path.Value.ToString();
                  StreamReader sr = new StreamReader(FilePath);
                  string input = sr.ReadToEnd();
                  Regex re = new Regex(@"(?<ProdKey>[\d-]+)\s+(?<Quant>-\d+)",
                  MatchCollection mc;

                  mc = re.Matches(input);
                  foreach( Match m in mc )
                        // Get the information from the Regex object
                        string ProdKey = m.Groups["ProdKey"].Value;
                        IDbCommand CmdRunOver=NewConn.CreateCommand();
                        CmdRunOver.CommandText="SELECT ProRunID,ProKey from Products";
                        IDataReader reader = CmdRunOver.ExecuteReader();
                        while (reader.Read())
                              if (ProdKey==reader["ProKey"].ToString())
                                    int QuantitySold = Convert.ToInt32(m.Groups["Quant"].Value);

                  string Dir=System.IO.Path.GetDirectoryName(FilePath);
                  DirectoryInfo dirInfo = new DirectoryInfo(Dir);
                  DateTime dtYez = new DateTime();
                  foreach ( FileInfo f in dirInfo.GetFiles() )
                        if( f.Extension.Equals(".DOC") && (f.Name.Equals("PRESTO.DOC") ) )
                              dtYez = DateTime.Parse(f.CreationTime.ToString());
                              statusBar1.Text="File is del !!!";


this is the file txt :

                                                                 -2          422
                                                                 -4          425
                                                                 -5          544
                                                                 -4          545
                                                                 -1          566
                                                                 -5          574
                                                                 -1          593
                                                                 -1          596
                                                                 -2          652
                                                                 -2          679
                                                                 -2          681
                                                                 -1          709
                                                                 -3          713
                                                                 -2          715
                                                                 -3          720
                                                                 -2          754
                                                                 -1          813
                                                                 -5          832
                                                                -79         3022
                                                                -60         3029
                                                                -30         3030
                                                               -115         3100
                                                                -56         3110
                                                                -30         3117
                                                               -123         3120
                                                                -77         3125
                                                               -227         3127
                                                               -202         3128
                                                               -103         3140
                                                                -82         3141
                                                                -70         3142
                                                                -49         3144
                                                                -75         3146
                                                               -107         3150
                                                                -75         3151
                                                                -75         3205
                                                                -45         3222
                                                                  1         3223
                                                                -50         3231
                                                                -50         3232
                                                               -107         3233
                                                               -227         3236
                                                                -75         3305

now when he read the ProductsKey and quantity the reading is worng he read the first ProKey like 422 and the second quant like -4 i dont know why he dose it is anyone here can help me to solve that problem that i have ??

i need to read 422 and -2 like the first Products row in the file
Question by:Tech_Men

Assisted Solution

pgloor earned 600 total points
ID: 16933568
I'm not very good with regular expressions but I think you just need to switch the <ProdKey> part with the <Quant> part in your regex rule. Make sure to switch anthing inside the open and closing brackets ().

Old line of code:
Regex re = new Regex(@"(?<ProdKey>[\d-]+)\s+(?<Quant>-\d+)", RegexOptions.Compiled);

New line of code:
Regex re = new Regex(@"(?<Quant>-\d+)\s+(?<ProdKey>[\d-]+)", RegexOptions.Compiled);

However, while this should work for any quantity with a nagative integer, I'm not sure this works for positive integers as well, so carefully check for  1 with 3223 in your example.


Author Comment

ID: 16933612
u are write its seems to be good now eccsept to this line 3223 he skip over

how can i get this line 2 ?

i must to get the Postive number to the APP .

Assisted Solution

pg_india earned 100 total points
ID: 16933673
The problem is with the regular expression.

Use this regular expression:

Regex re = new Regex(@"(?<ProdKey>-\d+)\s+(?<Quant>[\d-]+)",RegexOptions.Compiled);
Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.


Author Comment

ID: 16933694
soory but its not working its dosent read any :-(

Author Comment

ID: 16933731
this line is working good :

Regex re = new Regex(@"(?<Quant>-\d+)\s+(?<ProdKey>[\d-]+)", RegexOptions.Compiled);

but its dosent read to row whit postive number like             1         3223

how can i read pos an neg numbers in this Reg Line?

Accepted Solution

Bowmanje earned 1300 total points
ID: 16934310
Tech Men,


Regex re = new Regex(@"(?<Quant>-\d+|\d+)\s+(?<ProdKey>[\d-]+)", RegexOptions.Compiled);

It will match your problem line, but it will also match any positive number for the first column (is this a problem?).


Author Comment

ID: 16934535
i dont think that thie will be the problem .... its working great ..  i love u all ... thanks !!!

Featured Post

What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

We all know that functional code is the leg that any good program stands on when it comes right down to it, however, if your program lacks a good user interface your product may not have the appeal needed to keep your customers happy. This issue can…
Exception Handling is in the core of any application that is able to dignify its name. In this article, I'll guide you through the process of writing a DRY (Don't Repeat Yourself) Exception Handling mechanism, using Aspect Oriented Programming.
Loops Section Overview
As many of you are aware about Scanpst.exe utility which is owned by Microsoft itself to repair inaccessible or damaged PST files, but the question is do you really think Scanpst.exe is capable to repair all sorts of PST related corruption issues?
Suggested Courses
Course of the Month16 days, 2 hours left to enroll

850 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question