Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win


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
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions

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);

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.


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

Enroll in October's Free Course of the Month

Do you work with and analyze data? Enroll in October's Course of the Month for 7+ hours of SQL training, allowing you to quickly and efficiently store or retrieve data. It's free for Premium Members, Team Accounts, and Qualified Experts!

Question has a verified solution.

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

Introduction Although it is an old technology, serial ports are still being used by many hardware manufacturers. If you develop applications in C#, Microsoft .NET framework has SerialPort class to communicate with the serial ports.  I needed to…
Entity Framework is a powerful tool to help you interact with the DataBase but still doesn't help much when we have a Stored Procedure that returns more than one resultset. The solution takes some of out-of-the-box thinking; read on!
Visualize your data even better in Access queries. Given a date and a value, this lesson shows how to compare that value with the previous value, calculate the difference, and display a circle if the value is the same, an up triangle if it increased…
Have you created a query with information for a calendar? ... and then, abra-cadabra, the calendar is done?! I am going to show you how to make that happen. Visualize your data!  ... really see it To use the code to create a calendar from a q…

618 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