Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Open text file, loop through contents and check against

So I have a generic number check that I am trying to implement:

    public static bool isNumberValid(string Number)
    {
    }

And I want to read the contents of a textfile (only contains numbers) and check each line for the number and verify it is the valid number using isNumberValid. Then I want to output the results to a new textfile, I got this far:

    private void button2_Click(object sender, EventArgs e)
    {
        int size = -1;
        DialogResult result = openFileDialog1.ShowDialog(); // Show the dialog.
        if (result == DialogResult.OK) // Test result.
        {
            string file = openFileDialog1.FileName;
            try
            {
                string text = File.ReadAllText(file);
                size = text.Length;
                using (StringReader reader = new StringReader(text))
                {

                        foreach (int number in text)
                        {
                            // check against isNumberValid
                            // write the results to a new textfile 
                        }
                    }
                }

            catch (IOException)
            {
            }
        }
    }

Kind of stuck from here if anyone can help?

The textfile contains several numbers in a list:

4564

4565

4455

etc.

The new textfile I want to write would just be the numbers with true or false appended to the end:

4564 true

like image 456
G Gr Avatar asked Dec 04 '25 10:12

G Gr


1 Answers

You don't need to read the entire file into memory all at once. You can write:

using (var writer = new StreamWriter(outputPath))
{
    foreach (var line in File.ReadLines(filename)
    {
        foreach (var num in line.Split(','))
        {
            writer.Write(num + " ");
            writer.WriteLine(IsNumberValid(num));
        }
    }
}

The primary advantage here is a much smaller memory footprint, as it only loads a small part of the file at a time.

like image 112
Jim Mischel Avatar answered Dec 06 '25 23:12

Jim Mischel



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!