|
I was reading through a few article's not just on tcp when i noticed in a few articles people have had to swap 2 numbers of which a couple went to a ellaborate means to do so.
My question is why??? To the point of why use A,B and C when you Just need A and B
int A = 1;
int B = 2;
A = B ^ A;
B = A ^ B;
A = B ^ A;
|
|
|
|
|
A = B + A;
B = A - B;
A = B - A;
why not that instead?
|
|
|
|
|
latta wrote:
why not that instead?
Because it doesn't work, in your example A becomes -2.
- Nick Parker My Blog | My Articles
|
|
|
|
|
Nick Parker wrote
Because it doesn't work, in your example A becomes -2.
dang
I meant
A = A - B;
for the last line.
|
|
|
|
|
I suppose if ur gonna swap numbers just a few times, it might be more efficient the way ur saying....but when maybe ur facing 1000000 swap operations, i think the overhead of creating a 3rd variable and making all operations to get the swap based on simple equalities might have the upperhand.
|
|
|
|
|
jdeakin2004 wrote:
i noticed in a few articles people have had to swap 2 numbers of which a couple went to a ellaborate means to do so.
Were the source codes in those articles actually written in C# or in C/C++? In case it was C# I'm not sure if it makes a notable difference. Your suggestion compiles to:
IL_0000: ldc.i4.1
IL_0001: stloc.0
IL_0002: ldc.i4.2
IL_0003: stloc.1
IL_0004: ldloc.1
IL_0005: ldloc.0
IL_0006: xor
IL_0007: stloc.0
IL_0008: ldloc.0
IL_0009: ldloc.1
IL_000a: xor
IL_000b: stloc.1
IL_000c: ldloc.1
IL_000d: ldloc.0
IL_000e: xor
IL_000f: stloc.0
IL_0010: ret
Whereas the simpler approach of using three variables compiles to:
IL_0000: ldc.i4.1
IL_0001: stloc.0
IL_0002: ldc.i4.2
IL_0003: stloc.1
IL_0004: ldc.i4.0
IL_0005: stloc.2
IL_0006: ldloc.0
IL_0007: stloc.2
IL_0008: ldloc.1
IL_0009: stloc.0
IL_000a: ldloc.2
IL_000b: stloc.1
IL_000c: ret
The second example is four IL opcodes shorter and doesn't need the xor operator. Altogether no really big difference and more important I'd say you still won't know which one executes faster unless you specify the native code compiler and the target platform. Personally I might prefer the solution with three variables. Somehow I find it to be more readable. Anyway, if I consider efficiency with every line of code I write I might also go back to C and inline assembler. C# and .NET are about RAD. If it isn't fast enough maybe it's the wrong tool for the job.
Best regards
Dennis
|
|
|
|
|
Hi,
I'm trying to figure out how to do file association for my application, the web doesn't seem to have very much info on this topic. Basically, my program lets the user save a file (the type i used is .drw), i did the saving using serialization. I want to let the user double-click on this file to open up the program and the selected file. I also want to associate an icon created for this file type. I know very little about the system registry, so I have no clue on how to do this. Any help greatly appreciated, thanks!
Brian
|
|
|
|
|
|
how do i send a update statement to sql in csharp i want create the statement myself and send it
chad
|
|
|
|
|
Depending on your database, check into either the SqlCommand Class[^] for SQL Server or OleDbCommand Class[^] for a database like Access. Once you have that set up properly (refer to the two links I provided) you will want to call the ExecuteNonQuery method. If you have further questions please feel free to ask.
- Nick Parker My Blog | My Articles
|
|
|
|
|
Are you using a DataAdapter ? if it's just the UPDATE statement you want to send, this may work:
SqlConnection conn = new SqlConnection("connection string here");
conn.Open();
SqlCommand cmd = new SqlCommand("UPDATE Table SET field=value WHERE field=something;", conn);
cmd.ExecuteNonQuery(); If you want to build the SQL statement on the fly, use parametized queries (see the Parameters property of the SqlCommand object.)
If you're using a DataAdapter , you have to build an SqlCommand object with the UPDATE query and set it to the DataAdapter 's UpdateCommand property.
-- LuisR
Luis Alonso Ramos
Intelectix - Chihuahua, Mexico
Not much here: My CP Blog!
|
|
|
|
|
Hi all. I'm trying to do a regex that will find bool variables in my C# code that don't contain the word 'Is' in the name. I have this:
^(\s+(private|public|protected))[\s]+bool[\s]+[\w]+(Is)[\w]+[\s]*[^\(\w]
which matches variables, but not methods, that DO contain 'Is'. I tried (^Is), but that doesn't work, for obvious reasons. Can anyone suggest how I go about getting the match I want ?
Thanks.
Christian
I have several lifelong friends that are New Yorkers but I have always gravitated toward the weirdo's. - Richard Stringer
|
|
|
|
|
Christian Graus wrote:
which matches variables, but not methods, that DO contain 'Is'. I tried (^Is), but that doesn't work, for obvious reasons. Can anyone suggest how I go about getting the match I want ?
Try searching MSDN for negative lookahead.
Everytime I need to use it I need to re-read it ten times until I get it working, but it does exactly what you need.
When will someone come up with something more readable than regexes?
Yes, even I am blogging now!
|
|
|
|
|
Thanks - negative lookahead is exactly what I was trying to emulate
It's all working now, which means I've just about finished. You're right, regex is SO illegible. I really like doing them though, they are cool. Something more legible would be nicer, but not as much fun !!!
Christian
I have several lifelong friends that are New Yorkers but I have always gravitated toward the weirdo's. - Richard Stringer
|
|
|
|
|
CG, I see you have your problem solved, but I thought I would pass along a useful tool in case you haven't seen it before. It's call The Regulator[^], a free regular expressions testing and learning tool. Very useful.
- Nick Parker My Blog | My Articles
|
|
|
|
|
Thanks. I had to do 25 or so regexes, and I used expresso. I'll download this one and give it a go as well, though.
Christian
I have several lifelong friends that are New Yorkers but I have always gravitated toward the weirdo's. - Richard Stringer
|
|
|
|
|
I would like to develop an application that acts as a compiler editor, as an example when the user write "if" in the text the word's color is changed into blue for instance; how can I use the richTextbox to develop such that application? what are the functions needed to develop such that application?
If you gave me a sample application it is thankful.
m_h_shehab@hotmail.com
Great thanks in advance.
M.Shehab
|
|
|
|
|
Use a regular expression (look at System.Text.RegularExpressions namespace) to search for your keywords inside the text as the user types it. When a match is found, change it's color to blue using properties like richTextBox.SelectedTextColor .
Any remotely useful information on my blog will be removed immediately. There are 10 kinds of people in the world. Those who have heard of the ubiquitous, overused, worn-out-like-an-old-shoe binary "joke" and those who haven't.
Judah Himango
|
|
|
|
|
There is an article here on CP; I don't have the link right off hand that discusses this. I believe that it was written in VB.NET however it should take little effort to convert this over to C#. Try using the Search[^] page.
- Nick Parker My Blog | My Articles
|
|
|
|
|
I'm trying to find a tool that can convert this cpp source to cs source.
Can anyone help?
|
|
|
|
|
Blubbo wrote:
Can anyone help?
Probably not, there are too many differences between the languages that you couldn't guarantee that your conversion would perform correctly. If you have a particular question on mapping from C++ to C# feel free to post it for additional help.
- Nick Parker My Blog | My Articles
|
|
|
|
|
I think you are right - such tool will be grat, but not easy to build. I've played a little with porting some Linux KDE Games written in C++ to C# and they works with minor changes. There were 3 most important points: changing method names (good code editor will do the magic) and playing with structures and pointers.
h.
|
|
|
|
|
Hi ive been working on a program and i need to send keys to another program, ive used user32 sendmessage to send api codes and i can get sendkey to send to the top level program but i want a way thats kind of a cross between them both.
I'd like a way to send the keys like with sendkey but to any process running like the sendmessage. Ive looked though alot of things on send message and i know you can change some numbers to get it to send differnt types of messages but havent found if you can just send keys.
Any help would be wonderfull.
|
|
|
|
|
|
Like i said in the first post, ive used send key but it only works on the top program wich isn't always applicable, unless thier is some way of making it work on any running program
|
|
|
|