Solved

Can't translate program from VB to C#

Posted on 2012-12-26
11
791 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 34

Expert Comment

by:Paul MacDonald
ID: 38721636
"...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
ID: 38721645
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
ID: 38721662
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
ID: 38721670
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
ID: 38721676
Both versions of the program are on http://www.ee-stuff.com/Expert/Upload/upload.php under Question 27977913.
0
DevOps Toolchain Recommendations

Read this Gartner Research Note and discover how your IT organization can automate and optimize DevOps processes using a toolchain architecture.

 
LVL 34

Expert Comment

by:Paul MacDonald
ID: 38721684
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
ID: 38721715
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
ID: 38721787
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 34

Expert Comment

by:Paul MacDonald
ID: 38721802
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
ID: 38721838
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
ID: 38721861
WriteAllText() did the trick. Thank you!
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
Tool Box 2 34
Connection String 16 43
Allow User To Arrange Columns At Datagridview 3 19
VB.NET 2008 Populate DataModel with DataTable 24 7
Today I had a very interesting conundrum that had to get solved quickly. Needless to say, it wasn't resolved quickly because when we needed it we were very rushed, but as soon as the conference call was over and I took a step back I saw the correct …
Real-time is more about the business, not the technology. In day-to-day life, to make real-time decisions like buying or investing, business needs the latest information(e.g. Gold Rate/Stock Rate). Unlike traditional days, you need not wait for a fe…
This Micro Tutorial hows how you can integrate  Mac OSX to a Windows Active Directory Domain. Apple has made it easy to allow users to bind their macs to a windows domain with relative ease. The following video show how to bind OSX Mavericks to …
Along with being a a promotional video for my three-day Annielytics Dashboard Seminor, this Micro Tutorial is an intro to Google Analytics API data.

911 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

25 Experts available now in Live!

Get 1:1 Help Now