Convert pasted text into single line - c#

So I have a textbox where I want an address to be stored, but as a single line. To get the address in there I will always do a copy and paste, and the issue is that where I copy it from, it is multiline, so when I paste it, it only shows the first line. I know I can change it into a multiline textbox and then use backspace to make it one line, but I'm just wondering if there is a way I can just make it single line with code.

textBox1.Text = Clipboard.GetText().Replace(Environment.NewLine, " ");

Try,
textBox1.Text = textBox2.Text.Replace("\r\n", " ");
EDIT:
String singleLine=multiLine.Replace("\r\n"," ");

You can remove '\n' characters from the input and '\r' as well.

Related

C# asp.net check if textbox contains spaces

I am trying to prevent the user from leaving the textbox empty and it worked with me using this code:
textbox1.Text != ""
but now I want to prevent entering spaces, I tried this code below but it doesn't prevent it:
if(!string.IsNullOrWhiteSpace(textbox1.Text))
is there any other way to prevent entering spaces?
Do you mean that you want to check if the value contains a space character? The string object has a method to check that:
if (!textBox1.Text.Contains(" "))
The following simply removes the spaces:
textbox1.Text = textbox1.Text.Replace(" " ,"");

Break code line with Console.WriteLine

I can't find how to split a Console.WriteLine text without creating a new line in the program. I mean, my code line is too long and it's uncomforable to scroll horizontally in order to check it
Console.WriteLine("BlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBla")
the result is only a line of text in the console (Might be split because of its length, but keeps being the same line)
into the same, but in different lines in the code, giving the same result. I've tried just splitting them with a new code of line as if it was common code like this:
Console.WriteLine("BlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBla
BlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBla
BlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBla
BlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBla")
and the result keeps being a line of text in the console
But looks like it's not the right way.
Sorry if it's stupid. Thanks
There's not a way to split a string literal in C# without embedding the line breaks in the string. The typical way to split a line like that is:
Console.WriteLine("BlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBla" +
"BlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBla" +
"BlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBla" +
"BlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBla");
If your string has line breaks, then you can use the literal string identifier #:
Console.WriteLine(#"This is one line followed by a carriage return
this is the second line of the string
and this is the third line");
You can use Console.Write instead and call it multiple times. Call WriteLine once at the end either as a part of the all or with an empty string to ensure you start on a new line when you are done with that string.
Console.Write("BlaBlaBlaBlaBlaBlaBlaBla");
Console.Write("BlaBlaBlaBlaBlaBlaBlaBla");
Console.Write("BlaBlaBlaBlaBlaBlaBlaBla");
Console.Write("BlaBlaBlaBlaBlaBlaBlaBla");
Console.WriteLine("BlaBlaBlaBlaBlaBlaBlaBla");
Console.WriteLine("BlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBla" +
"BlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBla" +
"BlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBla" +
"BlaBla");
If you have Resharper installed hitting enter inside of a string will automatically format the new line and add the + for you.
The best you can do is split long string into substrings and concat them before output:
Console.WriteLine("BlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBla"
+ "BlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBla"
+ "BlaBlaBlaBlaBlaBlaBlaBlaBla")
If you only are going to write Bla then do
for(int i = 0; i < /*Amount of Bla's here*/; i++){
Console.Write("Bla");
}

New line is not working in MessageBox in C#/WPF

Short question: I have a string in my resources: "This is my test string {0}\n\nTest"
I'm trying to display this string in my Messagebox:
MessageBox.Show(String.Format(Properties.Resources.About,
Constants.VERSION),
Properties.Resources.About_Title, MessageBoxButton.OK,
MessageBoxImage.Information);
However I don't get new lines. The \n still show up as characters, not as new lines.
I also tried to use a workaround like mystring.Replace("\n", Environment.NewLine) but this also doesn't change anything.
What am I doing wrong?
Edit: Funny thing to mention: Replace("\n", "somethingelse") doesn't change anything.
Edit2: Shift+Enter in my Resource-File instead of \n seems to work... Strange behaviour anyway
Put a place holder where you want to put new line and in the code where you use that resource string, just replace it with new line: string resource: "This is first line.{0}This is second line.{0}This is third line." You will use this resource string like this: MessageBox.Show(string.Format(MyStringResourceClass.MyStringPropertyName, Environment.NewLine));
OR
Unconventional Method
But i just now got it working by coping newline from word directly (or anyother place) & pasting it inside the resource string file.
It was simple..
OR
\r\n characters will be converted to new line when you display it by using message box or assign it to text box or whenever you use it in interface.
In C# (like most C derived languages), escape characters are used to denote special characters such as return and tab, and + is used in place of & for string concatenation.
To make your code work under C# you’ve got two options... the first is to simply replace the NewLine with the return escape character \n ala:
MessageBox.Show("this is first line" + "\n" + "this is second line");
The other method, and more correct is to replace it instead with Environment.NewLine which theoretically could change depending on the system you are using (however unlikely).
MessageBox.Show("this is first line" + Environment.NewLine + "this is second line");
In the resource editor seperate your string content by using shift+enter. Or else, edit your ResX file in xml editor and using enter key create a new line for your resource string.
Refer this link for detail info: Carriage Return/Line in ResX file.
Try this:
String outputMessage = string.Format("Line 1{0}Line 2{0}Line 3", Environment.NewLine);
MessageBox.Show(outputMessage);
A further example with another variable:
String anotherValue = "Line 4";
String outputMessage = string.Format("Line 1{0}Line 2{0}Line 3{0}{1}", Environment.NewLine, anotherValue);
MessageBox.Show(outputMessage);
Try this
removing the MessageBoxButtons.OK and MessageBoxImage. Information.
MessageBox.Show(String.Format(Properties.Resources.About,
Constants.VERSION),
Properties.Resources.About_Title);

Take a single line of string from a richTextBox

I'm sorry if this has been answered before but I couldn't find the answer which fit my needs
I have a richTextBox in c# and I want to get a continuous string of text of the contents
The problem is .Text will get something like:
First line \n Second Line \n Third Line
and what I need is:
First line Second Line Third Line
I don't want to directly parse the \n as it might be relevant to the text I'm retrieving but I don't want it added based on the lines of the richTextBox
Any ideas? Any help is gratefully appreciated.
If I understand correctly, would this work for you?
string text = richTextBox.Text.Replace(Environment.NewLine, " ");
The alternative could be to use the regex from this answer.
string text = Regex.Replace(richTextBox.Text, #"\r\n?|\n", " ");

C# Reading a file and writing out replacing string

What I have is a C# windows app that reads a bunch of SQL tables and creates a bunch of queries based on the results. What I'm having a small issue with is the final "," on my query
This is what I have
ColumnX,
from
I need to read the entire file, write out exactly what is in the file and just replace the last , before the from with nothing.
I tried .replace(#",\n\nfrom),(#"\n\nfrom) but it's not finding it. Any help is appreciated.
Example:
ColumnX,
from
Result:
ColumnX
from
The line break is most likely the two character combination CR + LF:
.replace(",\r\n\r\nfrom","\r\n\r\nfrom")
If you want the line break for the current system, you can use the Environment.NewLine constant:
.replace(","+Environment.NewLine+Environment.NewLine+"from",Environment.NewLine+Environment.NewLine+"from")
Note that the # in front of a string means that it doesn't use backslash escape sequences, but on the other hand it can contain line breaks, so you could write it in this somewhat confusing way:
str = str.replace(#",
from", #"
from");
There are two solutions that you can try:
Remove the # symbol, as that means it's going to look for the literal characters of \n rather than a newline.
Try .replace("," + Environment.NewLine + Environment.NewLine + from, Environment.NewLine + Environment.NewLine + "from)
Instead of replacing or removing the comma when you read the file, it would probably be preferable to remove it before the file is written. That way you only have to bother with the logic once. As you are building your column list, just remove the last comma after the list is created. Hopefully you are in a position where you have control over that process.
If you can assume you always want to remove the last occurrence of the comma you can use the string function LastIndexOf to find the index for the last comma and use Remove from there.
myString = myString.Remove(myString.LastIndexOf(","), 1);
What about using Regex? Does that handle different forms of linefeed better?
var result = Regex.Replace(input, #",(\n*)from", "$1from");

Categories

Resources