Solved

Can't translate program from VB to C#

Posted on 2012-12-26
11
781 Views
Last Modified: 2012-12-26
I have a Visual Studio VB.NET program with one form. The form has one text box and one button. You enter text in the text box, click the button, and your input is saved in a new text filed called TextFile1.txt. It works fine.  Here's the code for the Button1_Click.

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles     Button1.Click
        My.Computer.FileSystem.WriteAllText _
            ("c:\TextFile1.txt", TextBox1.Text, False)
        MsgBox("File saved as TextFile1.txt")

 End Sub


I tried to create the same program in Visual C#, but it doesn't work. Here's the code for the Button1_Click.

        private void Button1_Click(object sender, EventArgs e)
        {  
            System.IO.File.WriteAllLines
                (@"C:\TextFile2.txt", TextBox1.Text);
            Microsoft.VisualBasic.Interaction.MsgBox
                ("File saved as TextFile2.txt");
        }

I don't know how to make the C# version work. I'm going to attach both programs
to http://www.ee-stuff.com/Expert/Upload/upload.php as zip files because this page won't let me attach them.
0
Comment
Question by:MBarongan
  • 5
  • 3
  • 2
  • +1
11 Comments
 
LVL 33

Expert Comment

by:paulmacd
Comment Utility
"...but it doesn't work."

That's pretty vague.  What happens that shouldn't, or doesn't that should?
0
 
LVL 17

Expert Comment

by:nepaluz
Comment Utility
How about
private void Button1_Click(System.Object sender, System.EventArgs e)
{
	My.Computer.FileSystem.WriteAllText("c:\\TextFile1.txt", TextBox1.Text, false);
	Interaction.MsgBox("File saved as TextFile1.txt");

}

Open in new window

Converter
0
 

Author Comment

by:MBarongan
Comment Utility
I get a dialog box that says "There were build errors. Would you like to continue and run the last  successful build?"  

I click No to close the box, and then these errors appear at the bottom of the IDE.

Error1 on line 22 says "The best overloaded method match for 'System.IO.File.WriteAllLines(string, string[])'
has some invalid arguments"      
        
Error 2 on LIne 22 says"Arugment2: cannot convert 'string to 'string[]'
0
 

Author Comment

by:MBarongan
Comment Utility
When I tried
            My.Computer.FileSystem.WriteAllText("c:\\TextFile1.txt", TextBox1.Text, false);
            Microsoft.VisualBasic.Interaction.MsgBox("File saved as TextFile1.txt");

I got this error
"The name 'My' does not exist in the current context"
0
 

Author Comment

by:MBarongan
Comment Utility
Both versions of the program are on http://www.ee-stuff.com/Expert/Upload/upload.php under Question 27977913.
0
How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

 
LVL 33

Expert Comment

by:paulmacd
Comment Utility
Try:

private void Button1_Click(object sender, EventArgs e)
        {  
            System.IO.File.WriteAllLines(@"C:\TextFile2.txt", TextBox1.Text.ToString, Encoding.UTF8);
            Microsoft.VisualBasic.Interaction.MsgBox("File saved as TextFile2.txt");
        }
0
 

Author Comment

by:MBarongan
Comment Utility
When I tried

private void Button1_Click(object sender, EventArgs e)
    {  
      System.IO.File.WriteAllLines(@"C:\TextFile2.txt", TextBox1.Text.ToString, Encoding.UTF8);
       Microsoft.VisualBasic.Interaction.MsgBox("File saved as TextFile2.txt");
     }

I got these two errors again

Error1  "The best overloaded method match for 'System.IO.File.WriteAllLines(string, string[])'has some invalid arguments"      
       
Error 2 "Arugment2: cannot convert 'string to 'string[]'
0
 
LVL 17

Expert Comment

by:nepaluz
Comment Utility
private void Button1_Click(object sender, EventArgs e)
    {  
      System.IO.File.WriteAllLines(@"C:\TextFile2.txt", TextBox1.Text.ToArray, Encoding.UTF8);
       Microsoft.VisualBasic.Interaction.MsgBox("File saved as TextFile2.txt");
     }

Open in new window

0
 
LVL 33

Expert Comment

by:paulmacd
Comment Utility
I see.  Try:

private void Button1_Click(object sender, EventArgs e)
    {  
      arrText = (string[])TextBox1.Text;"
      System.IO.File.WriteAllLines(@"C:\TextFile2.txt", arrText, Encoding.UTF8);
       Microsoft.VisualBasic.Interaction.MsgBox("File saved as TextFile2.txt");
     }


It looks like WriteAllLines is looking for an array as its second parameter.  I'm not a C# guy, so I may have flubbed the cast as arrText.  If so, I'm sure you can fix it.
0
 
LVL 85

Accepted Solution

by:
Mike Tomlinson earned 500 total points
Comment Utility
Use WriteAllText(), not WriteAllLines():
        private void Button1_Click(object sender, EventArgs e)
        {  
            System.IO.File.WriteAllText(@"C:\TextFile2.txt", TextBox1.Text);
            MessageBox.Show("File saved as TextFile2.txt");
        }

Open in new window

0
 

Author Closing Comment

by:MBarongan
Comment Utility
WriteAllText() did the trick. Thank you!
0

Featured Post

Top 6 Sources for Identifying Threat Actor TTPs

Understanding your enemy is essential. These six sources will help you identify the most popular threat actor tactics, techniques, and procedures (TTPs).

Join & Write a Comment

Wouldn’t it be nice if you could test whether an element is contained in an array by using a Contains method just like the one available on List objects? Wouldn’t it be good if you could write code like this? (CODE) In .NET 3.5, this is possible…
It was really hard time for me to get the understanding of Delegates in C#. I went through many websites and articles but I found them very clumsy. After going through those sites, I noted down the points in a easy way so here I am sharing that unde…
Get a first impression of how PRTG looks and learn how it works.   This video is a short introduction to PRTG, as an initial overview or as a quick start for new PRTG users.
This demo shows you how to set up the containerized NetScaler CPX with NetScaler Management and Analytics System in a non-routable Mesos/Marathon environment for use with Micro-Services applications.

771 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

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now