|
i need to convert C++ code into C#. Then the C++ in the form:
number=1
switch(number)
{
case 1:
//do something
number++
case 2:
//dosomething
number++;
case 3:
if ( )
{
//do something
number++;
}
else
{
number= 100;
}
case 4:
............
case 120:
//do something
break;
}
what is the easiest way to convert these code ?
thanks
|
|
|
|
|
this will be same in C# but I would like to prefer if statement.
TVMU^P[[IGIOQHG^JSH`A#@`RFJ\c^JPL>;"[,*/|+&WLEZGc`AFXc!L
%^]*IRXD#@GKCQ`R\^SF_WcHbORY87֦ʻ6ϣN8ȤBcRAV\Z^&SU~%CSWQ@#2
W_AD`EPABIKRDFVS)EVLQK)JKQUFK[M`UKs*$GwU#QDXBER@CBN%
R0~53%eYrd8mt^7Z6]iTF+(EWfJ9zaK-iTV.C\y<pjxsg-b$f4ia>
-----------------------------------------------
128 bit encrypted signature, crack if you can
|
|
|
|
|
Hi,
you can't fall through from one case to the next (except for empty cases), there must be an explicit change of program flow (break, return, throw, goto, ...)
your C++ code looks like a sequence of operations with a selectable start.
the easiest way IMO to get that done in C# is by putting everything in a for( ; ; ) {} and using a continue after each number++, plus of course providing an exit somehow.
However doing so there will be a performance hit since now the switch dispatching code gets executed over and over.
The ugly but high-performance alternative uses goto and labels; something like:
case 76:
label76:
...
goto label77;
case 77:
label77:
...
goto label78;
This adds two lines per case instead of one, but executes the switch only once.
Luc Pattyn [Forum Guidelines] [My Articles]
- before you ask a question here, search CodeProject, then Google
- the quality and detail of your question reflects on the effectiveness of the help you are likely to get
- use the code block button (PRE tags) to preserve formatting when showing multi-line code snippets
|
|
|
|
|
Luc Pattyn wrote: goto label77;
Why not goto case 77; ?
|
|
|
|
|
PIEBALDconsult wrote: goto case 77
O great, didn't know that. That will get me going places. Thanks.
Luc Pattyn [Forum Guidelines] [My Articles]
- before you ask a question here, search CodeProject, then Google
- the quality and detail of your question reflects on the effectiveness of the help you are likely to get
- use the code block button (PRE tags) to preserve formatting when showing multi-line code snippets
|
|
|
|
|
|
Is label needed? Can i do this way:
case 1:
// do something
goto case 2;
case 2:
//do something
goto case 3
.......
thanks!
|
|
|
|
|
Why does my skin crawl whenever I see a goto in code . I guess it is legitimate in this structure but I would never encourage the use of goto's, the potential for disasterous spaghetti dumps is too high.
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
# define proceedto goto
|
|
|
|
|
Could you explain more? thanks
|
|
|
|
|
I was merely demonstrating that (by using the C pre-processor) one could use goto without actually seeing the goto keyword. It was a joke.
|
|
|
|
|
hello
trying to access oracle database, reading this article from Oracle herself[^]. It illustrates how to configure and retrieve connection but what I need to do is to get an "DbProviderFactory" instance (to align with other db access already in our DAO library)
Any idea how to do this with ODAC? Example:
<br />
public static DbProviderFactory GetConnectionFactory(string strProvider)<br />
{<br />
DbProviderFactory oDbFactory = null;<br />
<br />
if (Providers == null)<br />
{<br />
Providers = new Hashtable();<br />
}<br />
<br />
if (!Providers.ContainsKey(strProvider))<br />
{<br />
if (strProvider.ToUpper() == MYSQL.ToUpper())<br />
{<br />
oDbFactory = new MySql.Data.MySqlClient.MySqlClientFactory();<br />
}<br />
else if (strProvider.ToUpper() == ORACLE.ToUpper())<br />
{<br />
oDbFactory = Oracle.DataAccess.Client.???<br />
}<br />
else<br />
{<br />
oDbFactory = DbProviderFactories.GetFactory(strProvider);<br />
Providers.Add(strProvider, oDbFactory);<br />
}<br />
}<br />
else<br />
{<br />
oDbFactory = (DbProviderFactory)Providers[strProvider];<br />
}<br />
<br />
return oDbFactory;<br />
}<br />
Or should I forget ODAC and use "System.Data.OracleClient.OracleClientFactory"?
<br />
oDbFactory = DbProviderFactories.GetFactory("System.Data.OracleClient..::.OracleClientFactory");<br />
Providers.Add(ORACLE, oDbFactory);<br />
Thanks
dev
|
|
|
|
|
I need to create a class which interfaces with a whole host of other classes. Instead of a Base Class <> Class relationship, I want a Class to interface between many different types of basic classes.
My New Interface Class <> Basic Class (of many types)
This way I have a COMMON interface and structure for my application to work with these basic types.
I think if I use the Base Class <> Class relationship, my application code will be very type specific because of the different functions and data that will be available with the different basic classes.
Is there a good location to read up on this? Any Go-By's? Anybody think this is backwards?
It may be worth mentioning that the different basic classes will all be of similar type, meaning all wil be data and functions. Its not like I am working with graphic, audio and/or function differences.
|
|
|
|
|
I have seen tons of people having this issue on google but haven't found a resolution yet. This is my code on getting the byte array from the picture. Then I try to insert it into a database.
But it ALWAYS fails and gives me this: A generic error occurred in GDI+.
byte[] GetPicData()
{
MemoryStream ms = new MemoryStream();
pictureBoxPicture.Image.Save(ms, ImageFormat.Jpeg);
byte[] invPic = ms.ToArray();
ms.Close();
return invPic;
}
|
|
|
|
|
In which line you're getting error ?
TVMU^P[[IGIOQHG^JSH`A#@`RFJ\c^JPL>;"[,*/|+&WLEZGc`AFXc!L
%^]*IRXD#@GKCQ`R\^SF_WcHbORY87֦ʻ6ϣN8ȤBcRAV\Z^&SU~%CSWQ@#2
W_AD`EPABIKRDFVS)EVLQK)JKQUFK[M`UKs*$GwU#QDXBER@CBN%
R0~53%eYrd8mt^7Z6]iTF+(EWfJ9zaK-iTV.C\y<pjxsg-b$f4ia>
-----------------------------------------------
128 bit encrypted signature, crack if you can
|
|
|
|
|
Here:
pictureBoxPicture.Image.Save(ms, ImageFormat.Jpeg);
|
|
|
|
|
try with png format
image.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
TVMU^P[[IGIOQHG^JSH`A#@`RFJ\c^JPL>;"[,*/|+&WLEZGc`AFXc!L
%^]*IRXD#@GKCQ`R\^SF_WcHbORY87֦ʻ6ϣN8ȤBcRAV\Z^&SU~%CSWQ@#2
W_AD`EPABIKRDFVS)EVLQK)JKQUFK[M`UKs*$GwU#QDXBER@CBN%
R0~53%eYrd8mt^7Z6]iTF+(EWfJ9zaK-iTV.C\y<pjxsg-b$f4ia>
-----------------------------------------------
128 bit encrypted signature, crack if you can
|
|
|
|
|
Nope.. didn't work... I dug deeper into the breakpoints and see this:
ReadTimeout '((System.IO.Stream)(ms)).ReadTimeout' threw an exception of type 'System.InvalidOperationException' int {System.InvalidOperationException}
base {"Timeouts are not supported on this stream."} System.SystemException {System.InvalidOperationException}
+ WriteTimeout '((System.IO.Stream)(ms)).WriteTimeout' threw an exception of type 'System.InvalidOperationException' int {System.InvalidOperationException}
+ base {"Timeouts are not supported on this stream."} System.SystemException {System.InvalidOperationException}
|
|
|
|
|
looks like a bug, link[^]
but I never have this problem
TVMU^P[[IGIOQHG^JSH`A#@`RFJ\c^JPL>;"[,*/|+&WLEZGc`AFXc!L
%^]*IRXD#@GKCQ`R\^SF_WcHbORY87֦ʻ6ϣN8ȤBcRAV\Z^&SU~%CSWQ@#2
W_AD`EPABIKRDFVS)EVLQK)JKQUFK[M`UKs*$GwU#QDXBER@CBN%
R0~53%eYrd8mt^7Z6]iTF+(EWfJ9zaK-iTV.C\y<pjxsg-b$f4ia>
-----------------------------------------------
128 bit encrypted signature, crack if you can
|
|
|
|
|
Do you think there is another way of getting the image from the picture box and saving it to a sql database?
|
|
|
|
|
try this
new Bitmap(pictureBoxPicture.Image).Save(ms, ImageFormat.Png);
TVMU^P[[IGIOQHG^JSH`A#@`RFJ\c^JPL>;"[,*/|+&WLEZGc`AFXc!L
%^]*IRXD#@GKCQ`R\^SF_WcHbORY87֦ʻ6ϣN8ȤBcRAV\Z^&SU~%CSWQ@#2
W_AD`EPABIKRDFVS)EVLQK)JKQUFK[M`UKs*$GwU#QDXBER@CBN%
R0~53%eYrd8mt^7Z6]iTF+(EWfJ9zaK-iTV.C\y<pjxsg-b$f4ia>
-----------------------------------------------
128 bit encrypted signature, crack if you can
|
|
|
|
|
Works the same but with less code and looks better.
You know if I am saving it as a png file do I have to export it from the database as a png?
|
|
|
|
|
Jacob Dixon wrote: Works the same but with less code and looks better.
you mean no error now ?
Jacob Dixon wrote: You know if I am saving it as a png file do I have to export it from the database as a png?
yes...png is best format.
TVMU^P[[IGIOQHG^JSH`A#@`RFJ\c^JPL>;"[,*/|+&WLEZGc`AFXc!L
%^]*IRXD#@GKCQ`R\^SF_WcHbORY87֦ʻ6ϣN8ȤBcRAV\Z^&SU~%CSWQ@#2
W_AD`EPABIKRDFVS)EVLQK)JKQUFK[M`UKs*$GwU#QDXBER@CBN%
R0~53%eYrd8mt^7Z6]iTF+(EWfJ9zaK-iTV.C\y<pjxsg-b$f4ia>
-----------------------------------------------
128 bit encrypted signature, crack if you can
|
|
|
|
|
Hi,
GDI+ has the tendency to name every problem happening in Image.Save() a "generic problem occured in GDI+". It could be a full disk, a locked file, whatever. In your case the MemoryStream can hardly fail (unless you are near an out-of-memory situation), but your image itself could be invalid (not sure how you would get PictureBox accept an invalid image, unless you first assign it to PictureBox.Image, and then do something to it.
Luc Pattyn [Forum Guidelines] [My Articles]
- before you ask a question here, search CodeProject, then Google
- the quality and detail of your question reflects on the effectiveness of the help you are likely to get
- use the code block button (PRE tags) to preserve formatting when showing multi-line code snippets
|
|
|
|
|
Well I use a OpenFileDialog to select a file and set the pictureBox.Image.
Then I use the above code when you click the Save button to get the bytes and insert it into a column in a database... but it never even gets to that. I tried this and it works (not very well for large images over VPN):
byte[] GetPicData()
{
MemoryStream ms = new MemoryStream();
Bitmap bmNew = new Bitmap(pictureBoxPicture.Width, pictureBoxPicture.Height, PixelFormat.Format24bppRgb);
Graphics g = Graphics.FromImage(bmNew);
g.DrawImage(pictureBoxPicture.Image, new Point(0, 0));
g.Dispose();
bmNew.Save(ms, ImageFormat.Png);
byte[] invPic = ms.ToArray();
ms.Close();
return invPic;
}
|
|
|
|