|
One more quick regex question. Do you think it would be possible to do a regex on this string
| Day | Amount | Direction | 3 | 100 | West | 5 | 43 | North | 5 | 44 | North West | 7 | 54 | South | 2 | 5995 | East | | | | | | | | | | 54 | 35345 | | | 543 | North | 6 | | West
and turn it into this string?
Day,Amount,Direction;3,100,West;5,43,North;5,44,North West;7,54,South;2,5995,East;,,;,,;,,;54,35345,;,543,North;6,,West
So, bascially the same thing you did on the other string, except with |'s with 1 space on each side...
If you don't want to actually work out the regex for this on that's fine (but I wouldn't mind!), but could you tell me if it's a good candidate for a regex?
/\ |_ E X E GG
|
|
|
|
|
Definately a good candidate. Something like ([^|])|([^|])|([^|])| changing to $1, $2, $3;
Christian Graus - Microsoft MVP - C++
|
|
|
|
|
Hey all,
I'm trying to set a beep(or any other non-threating noise) to sound when the users selects a node.
I've already used
[DllImport("kernel32.dll")]<br />
private static extern bool Beep(int freq, int dur);
but it doesn't make the sound i want, and since it is based on the kernel it has that rickety bios sound to it,
so anyways is there any way to get use of the windows sound schema like you could in vb, I've found the use of Microsoft.VisualBasic.Beep() but C# doesn't like the .Beep() stating that it isn't part of the Microsoft namespace, import am i missing? could i just as well use Microsoft.CSharp.Beep(); ? btw, I get the same namespace error...
Any better ideas?
Dim Beautiful As String
Beautiful = "ignorant"
Label1.Text = "The world is full of " & Beautiful & " people."
Why is common sense such an un-common comodity?
|
|
|
|
|
I think you have to use MessageBeep from User32.
I copied this from the Microsoft.VisualBasic namespace:
Public Shared Sub Beep()
Try
New UIPermission(UIPermissionWindow.SafeSubWindows).Demand
Catch exception1 As Exception
Try
New UIPermission(UIPermissionWindow.SafeTopLevelWindows).Demand
Catch exception2 As Exception
Return
End Try
End Try
UnsafeNativeMethods.MessageBeep(0)
End Sub
<DllImport("user32", CharSet:=CharSet.Unicode)> _
Friend Shared Function MessageBeep(ByVal uType As Integer) As Integer
End Function
'You can make different sounds my passing one of these to uType:
Public Const MB_ICONASTERISK As Integer = 64
Public Const MB_ICONEXCLAMATION As Integer = 48
Public Const MB_ICONHAND As Integer = 16
Public Const MB_ICONQUESTION As Integer = 32
Public Const MB_OK As Integer = 0 'Default
Sorry i can't make C# of it, i'm a wreck at that...
"..Commit yourself to quality from day one..it's better to do nothing at all than to do something badly.."
-- Mark McCormick
|
|
|
|
|
I have tried to use a Session Variable and a string that is going to be the body of a outlook email. I want to product line spaces in the body of the email. I have used the \n but it is not causing a new line, it is just adding a space.
Wanted to know if there is a way to cause a new line in outlook. My code is below:
string comment = "NEW INFORMATION " + txtComment.Text + "\n" + "\n" + "LOG INFORMATION " + txtLog.Text;
Thank You
Scott Moore
|
|
|
|
|
What is the format of the email? If it is html, then use <br> or <p>.
Matt Gerrans
|
|
|
|
|
I wanted to stay away from HTML. To get the information into the body of the email I am just passing it a string of information.
|
|
|
|
|
|
I tried that with no luck. I do not think that the body of the email reads the line spaces and carriage returns that are produced by the environment new line. When I look at the string I am passing the information to in the quickwatch, the \n and \r shows up, but when it is outputted to the body of the email, there is no added spaces.
|
|
|
|
|
Just a quickie for many thanks;
In a for loop I can get my current index quit easy;
for (int i=0; i<8; ++i)<br />
Console.WriteLine("Current index = "+i);
But with a foreach statement it's different. I only know this ugly way;
<br />
int i=0;<br />
foreach (int curInt in intCollection)<br />
{<br />
Console.WriteLine("Current index = "+i);<br />
i++;<br />
}<br />
Maybe I'm asking the impossible because foreach is for collections so it doesn't have a strict index. But Maybe there's an index keyword? Couldn't find it at the MSDN C# site.
|
|
|
|
|
And you won't find any. The ugly way is the only way to do it.
"God doesn't play dice" - Albert Einstein
"God not only plays dice, He sometimes throws the dices where they cannot be seen" - Niels Bohr
|
|
|
|
|
Ow well that's to bad. Is there any reason to use a foreach instead off a for loop?
My objections for using a foreach are;
- 'Ugly' indexing, as stated above
- Collection can't be modified while foreach-ing the collection.
|
|
|
|
|
Use a for loop if you need indexing. Use foreach if you don't need indexing and you like syntax candy.
Tech, life, family, faith: Give me a visit.
I'm currently blogging about: Homosexuality in Christianity
Judah Himango
|
|
|
|
|
It isn't about whether you "like syntax candy," it is about whether you like writing quality code. See Jan Larsen's reply for more insight.
Matt Gerrans
|
|
|
|
|
I'm not against using foreach, I use it quite a lot in my code. I just don't agree that 'foreach' is quality where 'for' is not. Both are easily recognizable by any novice programmer. As I said to the origin poster, if you need an index, you might as well be using for instead of foreach.
The IEnumerable idea is cool, and gets even better with C# 2.0's iterators with the yield keyword (allowing you to, basically, write co-routines). Coupled with foreach, it is really great. That doesn't mean we should never use the 'for' keyword.
My 'syntax candy' statement wasn't meant to belittle IEnumerable or foreach keyword; I'm merely saying that it is a simple syntax expression that does a lot under the hood (initialize an Enumerator, call the appropriate method calls each loop, and return the next object in the enumeration). You could call your own GetNext() and other appropriate IEnumerator functions yourself, 'foreach' is syntax candy that allows you to forgo typing all that.
Tech, life, family, faith: Give me a visit.
I'm currently blogging about: Homosexuality in Christianity
Judah Himango
|
|
|
|
|
Judah Himango wrote:
My 'syntax candy' statement wasn't meant to belittle IEnumerable or foreach keyword; I'm merely saying that it is a simple syntax expression that does a lot under the hood (initialize an Enumerator, call the appropriate method calls each loop, and return the next object in the enumeration). You could call your own GetNext() and other appropriate IEnumerator functions yourself, 'foreach' is syntax candy that allows you to forgo typing all that.
Basically, that's what high level languages are all about , I've done my share of Java programming, and I can assure you that I don't miss this:
for (Iterator i = myList.iterator(); i.hasNext();)
{
String tmp = (String) i.next();
}
I'd rather do this:
foreach(String tmp in myList)
{
}
Eye candy maybe, but much clearer, and I guess the ease of use, has got more inexperienced programmers to use the correct iterating technique.
I'm not joking, I've had colleques that would use this on a linked list:
for (int i = 0; i < myList.size(); i++)
{
String tmp = (String) myList.get(i);
}
"God doesn't play dice" - Albert Einstein
"God not only plays dice, He sometimes throws the dices where they cannot be seen" - Niels Bohr
|
|
|
|
|
foreach is great when you're abstracting your code. Indexing is purely for lists, and if you're doing a foreach on an IEnumerable , then you're always sure to get the maximum performance. Consider the performance issues on indexing eg. a linked list or a binary tree.
I'm always declaring my collection member variables as the lowest denominator. Eg. if I need a map, then I'm declaring an IDictionary , and when I'm iterating through the elements, I'll use a foreach loop.
This means that if I am to use a counter, then I have to do it the ugly way.
"God doesn't play dice" - Albert Einstein
"God not only plays dice, He sometimes throws the dices where they cannot be seen" - Niels Bohr
|
|
|
|
|
You can use IndexOf property of the collection you use, but since you're using foreach, there's no reason to think about indexes.
|
|
|
|
|
ltinka wrote:
You can use IndexOf property of the collection you use
Well, not really since there is no definite index in a map. Talking lists I definately agree, in a linked list, IndexOf() would trigger a reiteration, so it would have been better to use indexing in the first place.
"God doesn't play dice" - Albert Einstein
"God not only plays dice, He sometimes throws the dices where they cannot be seen" - Niels Bohr
|
|
|
|
|
cazzz wrote:
Is there any reason to use a foreach instead off a for loop?
Using foreach will automatically cast an item in the collection to right type.
Example:
for (int i = 0; i < 8; ++i)
{
Customer cust = (Customer)customers[i];
}
instead
foreach (Customer cust in customers)
{
}
Use foreach when you just want to iterate over all items and don't care about order or which item is the current item. Handle special behaviour inside a class and not in the calling code according to classic OO principles.
Example:
for (int i = 0; i < 8; ++i)
{
if (i == 4)
{
Customer cust = (Customer)customers[i];
DoSumthingWithCustomer(cust);
}
}
instead
foreach (Customer cust in customers)
{
cust.DoSumthing();
}
You should implement the class Customer so when calling method DoSumthing() on its objects it will only do something for the object which have index 4 in the for loop.
Ugly indexing is normally not needed in my experience.
/Patric
My C# blog: C# Coach
|
|
|
|
|
Patric_J wrote:
Ugly indexing is normally not needed in my experience.
I beg to differ. More often than not these days, I find myself writing stuff like this:
protected void DoSomething(MySortedStringList sortedElements, string[] buffer)
{
int i = 0;
foreach (string element in sortedElements)
{
buffer[i++] = element;
}
}
But that's what happens when having Hashtable as favourite collection
"God doesn't play dice" - Albert Einstein
"God not only plays dice, He sometimes throws the dices where they cannot be seen" - Niels Bohr
|
|
|
|
|
How do i get my textbox to accept the enter key as the same as clicking on the button? I want to beable to type then hit enter and when i hit enter it processes my request.
|
|
|
|
|
Try this
private void OnKeyPress(object sebnder, KeyPressEventArgs e)
{
if(e.KeyChar == (char) 13)
{
//Do Whatever you want }
else
{
base.OnKeyPress (e);
}
}
Live Life King Size
Alomgir Miah
|
|
|
|
|
Thanks....
|
|
|
|
|
The Form control has a property named AcceptButton. Set this to reference your button. In the same breath: You can also connect a button to the ESC key by referencing it in Form.CancelButton.
A small example:
public class MyForm: Form
{
private Button button;
public MyForm()
{
button = new Button();
this.Controls.Add(button);
AcceptButton = button;
}
}
"God doesn't play dice" - Albert Einstein
"God not only plays dice, He sometimes throws the dices where they cannot be seen" - Niels Bohr
|
|
|
|
|