Solved

# Writing numbers to a file C#

Posted on 2006-11-21
4,793 Views
Read all pairs (x, y) from in.txt, one in each line.
In each line of out.txt, write the list of all positive integers that are less than or equal to x and are dividable by y.
If y is equal to 0, write all the primes less than or equal to x.
If you do not find any positive integers, leave the line blank.

out.txt is the answer i need to get.

in.txt
7 2
20 4
6 9
18 0

out.txt
2 4 6
4 8 12 16 20

2 3 5 7 11 13 17

Here is what i have written.  For some reason it doesn't output the "Numers" method but only the "PrimeNumbers" Method.

using System;
using System.IO;

namespace PMTTEST1
{
class Class1
{
static int number1;
static int number2;
static int num1;
static int num2;

static void Main(string[] args)
{
}

{
string fileName = "input.txt";

string sLine;

string [] split;
const char delm = ' ';

while(sLine != null)
{
split = sLine.Split(delm);

number1 = int.Parse(split[0]);
number2 = int.Parse(split[1]);

if(number2 == 0)
{
}
else
{

Numbers();
}
}
}

public static void Numbers()
{
StreamWriter fileWriter = new StreamWriter("out.txt");

for(int i = 1; i <= number1; i++)
{
num1 = i;

if((num1 % number2) == 0)
{
fileWriter.Write(num1+ " ");
}
}
fileWriter.Close();
}

{
StreamWriter fileWriter = new StreamWriter("out.txt");

for(int j = 1; j <= number1; j++)
{
num2 = j;

if((Math.Pow(2, num2) % num2) == 2)
{
fileWriter.Write(num2+ " ");
}
}
fileWriter.Close();
}
}
}
0
Question by:jmkotman
• 2

LVL 18

Accepted Solution

Ravi Singh earned 500 total points
ID: 17988934
Hi, you need to append to the out.txt not overwrite it each time (you can specify a boolean in the constructor for StreamWriter to append), and also you want a WriteLine before calling fileWriter.Close(), the following methods have the modifications:

public static void Numbers()
{
StreamWriter fileWriter = new StreamWriter("out.txt", true);

for(int i = 1; i <= number1; i++)
{
num1 = i;

if((num1 % number2) == 0)
{
fileWriter.Write(num1+ " ");
}
}
fileWriter.WriteLine();
fileWriter.Close();
}

{
StreamWriter fileWriter = new StreamWriter("out.txt", true);

for(int j = 1; j <= number1; j++)
{
num2 = j;

if((Math.Pow(2, num2) % num2) == 2)
{
fileWriter.Write(num2+ " ");
}
}

fileWriter.WriteLine();
fileWriter.Close();
}
0

LVL 18

Expert Comment

ID: 17989012
obviously the program will continue appending to the file across multiple runs, you can delete the output file if it exists - on your program startup... so that the output only contains the results of the current run:

if (File.Exists("out.txt"))
File.Delete("out.txt");
0

LVL 44

Expert Comment

ID: 17989049
You were very close.  I took the liberty of re-writing some of your code.  See if you understand why.-

using System;
using System.IO;

namespace PMTTEST1
{
class Class1
{
static int number1;
static int number2;
static int num1;
static int num2;
static StreamWriter fileWriter;

static void Main(string[] args)
{

string fileName = "input.txt";
fileWriter = new StreamWriter("out.txt");

fileWriter.Close();
}

{

string [] split;
const char delm = ' ';

while(sLine != null)
{
split = sLine.Split(delm);

number1 = int.Parse(split[0]);
number2 = int.Parse(split[1]);

if(number2 == 0)
{
}
else
{

Numbers();
}
}
}

public static void Numbers()
{

for(int i = 1; i <= number1; i++)
{
num1 = i;

if((num1 % number2) == 0)
{
fileWriter.Write(num1+ " ");
}

}
fileWriter.WriteLine();
}

{

for(int j = 1; j <= number1; j++)
{
num2 = j;

if((Math.Pow(2, num2) % num2) == 2)
{
fileWriter.Write(num2+ " ");
}
}
fileWriter.WriteLine();

}
}
}

However, your PrimeNumbers procedure is not quite right.  It skips 2 (which is a Prime number) - see if you can figure out why it is skipping 2

AW
0

## Featured Post

### Suggested Solutions

Does the idea of dealing with bits scare or confuse you? Does it seem like a waste of time in an age where we all have terabytes of storage? If so, you're missing out on one of the core tools in every professional programmer's toolbox. Learn how to …
A short article about problems I had with the new location API and permissions in Marshmallow
In this fourth video of the Xpdf series, we discuss and demonstrate the PDFinfo utility, which retrieves the contents of a PDF's Info Dictionary, as well as some other information, including the page count. We show how to isolate the page count in a…
In this fifth video of the Xpdf series, we discuss and demonstrate the PDFdetach utility, which is able to list and, more importantly, extract attachments that are embedded in PDF files. It does this via a command line interface, making it suitable …