|
While I generally can't stand Visual Basic for much, it does certainly have some neat features for working with XML. You should send your developer a link to this article on MSDN[^].
Adam Maras | Software Developer
Microsoft Certified Professional Developer
|
|
|
|
|
Well, there are many horrors in that code.
The longest line can be shortened 50% by using String.Format()
Besides this, there is a high risk to produce a bad-formed XML if you have quotes, less-than or greater-than symbols inside your strings.
XmlTextWriter is the proper class to do xml serialization.
Best regards,
Jaime.
|
|
|
|
|
What feedback did you provide the developer...?
|
|
|
|
|
Try<br />
Dim d As Double = Math.Sqrt(number)<br />
Catch ex As Exception<br />
'do stuff<br />
End Try
|
|
|
|
|
Shenanigans! Nobody is that dumb.
Please... no.
|
|
|
|
|
It's almost like this one I saw a long time ago:
if (abs(num)!=num) ...
(this is a real one...)
|
|
|
|
|
jkruza wrote: (this is a real one...)
lol, i didnt make this up 
|
|
|
|
|
Yeah, I believe you.
But it's so stupid, it's really hard to believe it's real. 
|
|
|
|
|
true that 
|
|
|
|
|
jkruza wrote: (this is a real one
As opposed to an imaginary 1?
Visual Studio is an excellent GUIIDE.
|
|
|
|
|
Ah! I've been looking on how to do this for months!!!
Jeroen De Dauw
---
Forums ; Blog ; Wiki
---
70 72 6F 67 72 61 6D 6D 69 6E 67 20 34 20 6C 69 66 65!
|
|
|
|
|
In the original BASIC, the absolute value would be used, so no error.
|
|
|
|
|
I will never complain about our code base again.
OK - that was a lie, but I'm tempted.
CCC solved so far: 2 (including a Hard One!)
|
|
|
|
|
I don't think this code is doing what you think: it is not testing whether number is negative. No exception will be thrown because Math.Sqrt(n) returns NaN if n is negative. This is a valid Double value, and the code will drop out of the Try-Catch block without executing the line you have labelled 'do stuff. The only way this will get an exception is if the variable number is a String such as "XYZ". Math.Sqrt will cast a string such as "16" to a Double then take the square root of that, so as long as the String represents a numeric value it will work. Even "-16" will work because this will return NaN. But something such as "XYZ" will fail with an exception because this cannot be converted to a number and you will get an error.
Having said that, there are better ways to check whether a String is numeric.
|
|
|
|
|
You find this in the overlong validation routines...
function isNumeric(strString) {
var strValidChars = "0123456789";
var strChar;
var blnResult = true;
for (i = 0; i < strString.length && blnResult == true; i++) {
strChar = strString.charAt(i);
if (strValidChars.indexOf(strChar) == -1) {
blnResult = false;
}
}
return blnResult;
}
Developer, meet isNaN() , isNaN() meet developer.
|
|
|
|
|
Nice. Very useful with empty strings.
|
|
|
|
|
isNaD() would return true for sure.
Jeroen De Dauw
---
Forums ; Blog ; Wiki
---
70 72 6F 67 72 61 6D 6D 69 6E 67 20 34 20 6C 69 66 65!
|
|
|
|
|
But there's a functionality difference here, which might be deliberate. isNan handles decimal points and minus signs, the example function does not.
|
|
|
|
|
gkushner wrote: Developer, meet isNaN
Nope.
isNaN takes a float/double as an input, all it does is keep track of a mathematical mishap, such as taking the logarithm of a negative number.
It does not deal with a string that may or may not represent something that is considered a valid number (before you can apply isNaN, you have to try and parse the string to a number, and that is what the code is about)
Luc Pattyn
I only read code that is properly indented, and rendered in a non-proportional font; hint: use PRE tags in forum messages
Local announcement (Antwerp region): Lange Wapper? Neen!
|
|
|
|
|
Well, actually JavaScript will try to cast a string provided to isNaN as a float.
So, if you write isNaN("10"), js will process the expression as isNaN(parseFloat("10")).
However isNaN(parseInt("10")) gets the job done.
|
|
|
|
|
|
|
That is a great horror! Not only is it completely bloated and demonstrating the lack of understanding for weak typing and implicit conversion in JS, but it's also a horrifically inefficient implementation of a function parsing an integer. The naming convention is the icing on the cake.
At least this person wasn't trying to open a window on the server-side or accessing session on the client. Many asp.net programmers (in no small part due to Microsoft's tendency to present asp.net as if it was windows forms programming in introductory classes, I suspect) seem to not even understand any of the implications of a client-server model...
|
|
|
|
|
gkushner wrote:
var strChar;
I hate weak-typing.
Greetings - Jacek
|
|
|
|
|
Not the worst code I've seen, but it's bad. This is typical code worked on by multiple developers over time. The
class this is in has over 5000 lines of code. All of it looks like this.
DataTable dtShopOrder;
if(sSNInPK.ToLower()=="yes;")
dtShopOrder = new ERP().GetShopOrderDetails(txtSerialNum.Text);
else
dtShopOrder = new Operation().GetShopOrderDetails(txtSerialNum.Text);
if(dtShopOrder == null || dtShopOrder.Rows.Count <=0)
{
this.showMessage("Cannot find the serial number. Please contact your System Administrator.", MessageType.Warning);
return;
}
txtShopOrder.Text = dtShopOrder.Rows[0]["ShopOrder"].ToString();
txtAssembly.Text = dtShopOrder.Rows[0]["Assembly"].ToString();
txtRev.Text = dtShopOrder.Rows[0]["Revision"].ToString();
txtCUCode.Text = dtShopOrder.Rows[0]["CUCODE"].ToString();
txtCustomer.Text = dtShopOrder.Rows[0]["CUNAME"].ToString();
txtQty.Text = dtShopOrder.Rows[0]["Qty"].ToString();
strSubAsmWC = "";
try
{
if(dtShopOrder.Rows[0]["SubAsmWC"] != null)
{
strSubAsmWC = dtShopOrder.Rows[0]["SubAsmWC"].ToString();
}
}
catch
{
strSubAsmWC = "";
}
iCustOpNum = -1;
iMACOpNum = -1;
iMACCount = -1;
strCustLabel = "";
strMACAddress = "";
if(dtShopOrder.Rows[0]["iCustLabelOpNum"] != null)
{
try
{
iCustOpNum = int.Parse(dtShopOrder.Rows[0]["iCustLabelOpNum"].ToString());
}
catch
{
}
}
if(dtShopOrder.Rows[0]["iMacAddressOpNum"] != null)
{
try
{
iMACOpNum = int.Parse(dtShopOrder.Rows[0]["iMacAddressOpNum"].ToString());
}
catch
{
}
}
if(dtShopOrder.Rows[0]["iMacAddressCount"] != null)
{
try
{
iMACCount = int.Parse(dtShopOrder.Rows[0]["iMacAddressCount"].ToString());
}
catch
{
}
}
if(dtShopOrder.Rows[0]["CustLabel"] != null)
strCustLabel = dtShopOrder.Rows[0]["CustLabel"].ToString();
if(dtShopOrder.Rows[0]["MacAddress"] != null)
strMACAddress = dtShopOrder.Rows[0]["MacAddress"].ToString();
Found this in there also
if(slAppConfig[AppConfig.Keys.address_defect_wc.ToString()].ToString().IndexOf(lblWCKey.Text + ";",0)>=0
|| lblWCKey.Text == this.GetCutOffWC() || lblWCKey.Text == "MRBW")
{
this.EnableDefectEdits(true);
}
else
{
this.EnableDefectEdits(false);
}
Everything makes sense in someone's mind
modified on Thursday, October 8, 2009 6:40 PM
|
|
|
|