http://mohamadrozman.blogspot.com
Ta!
where memories recorded, ideas written, photos taken, heart stolen, milestone defined
A
way to sort this by the length of the strings in it (without having to write lots of code)? Showing longest strings first, for example.
SELECT StringColumn, len(StringColumn) AS LengthFROM YourTableORDER BY len(StringColumn) DESC
Public Function Dotted2LongIP(DottedIP As String) As Variant
' errors will result in a zero value
On Error Resume Next
Dim i As Byte, pos As Integer
Dim PrevPos As Integer, num As Integer
' string cruncher
For i = 1 To 4
' Parse the position of the dot
pos = InStr(PrevPos + 1, DottedIP, ".", 1)
' If its past the 4th dot then set pos to the last
'position + 1
If i = 4 Then pos = Len(DottedIP) + 1
' Parse the number from between the dots
num = Int(Mid(DottedIP, PrevPos + 1, pos - PrevPos - 1))
' Set the previous dot position
PrevPos = pos
' No dot value should ever be larger than 255
' Technically it is allowed to be over 255 -it just
' rolls over e.g.
'256 => 0 -note the (4 - i) that's the
'proper exponent for this calculation
Dotted2LongIP = ((num Mod 256) * (256 ^ (4 - i))) + _
Dotted2LongIP
Next
End Function
' convert long IP to dotted notation
Public Function LongIP2Dotted(ByVal LongIP As Variant) As String
On Error GoTo ExitFun
If LongIP = "" Or LongIP < 0 Then Err.Raise vbObjectError + 1
Dim i As Integer, num As Currency
' big number cruncher
For i = 1 To 4
' break off individual dot values - math out the wazoo
num = Int(LongIP / 256 ^ (4 - i))
' sets up the value for the next calculation
LongIP = LongIP - (num * 256 ^ (4 - i))
' a generic error to flag the exception handler -
'no dot value should ever be larger than 255
' technically it is allowed to be over 255
' but it's not possible from this calculation so
'raise an error
If num > 255 Then Err.Raise vbObjectError + 1
' string builder
If i = 1 Then
' 1st dot value has no leading dot
LongIP2Dotted = num
Else
' other dot values have a leading dot
LongIP2Dotted = LongIP2Dotted & "." & num
End If
Next
Exit Function
ExitFun:
LongIP2Dotted = "0.0.0.0" '"Invalid Input" ' whatever
End Function
<% Function fncTrimText(strText,intCharacters,blnMore) ' The function uses the following variables ' strText is used to pass the text to be trimmed ' intCharacters is used to indicate at what ammount of characters the text should be trimmed ' blnMore 0 for no and 1 for yes is used to add 3 dots after the trimmed text if the original text is longer ' Declare the variables required Dim blnDone : blnDone = 0 Dim strTextTrimmed ' First trim the text to the desired ammount of characters strTextTrimmed = Left(strText,intCharacters) ' Then add the remaining characters of the word if a word was cut with the trimming If cInt(Len(strText)) > cInt(intCharacters) Then intCharacters = intCharacters + 1 Do While (blnDone < 1) If Mid(strText,intCharacters,1) = " " Then blnDone = 1 Else strTextTrimmed = strTextTrimmed & Mid(strText,intCharacters,1) End If If cInt(Len(strText)) <= cInt(intCharacters) Then blnDone = 1 End If intCharacters = intCharacters + 1 Loop ' Now add the ... after the trimmed text If blnMore = 1 Then strTextTrimmed = strTextTrimmed & " ... " End If End If fncTrimText = strTextTrimmed End Function %>
<% Function fncTrimText(strText,intCharacters) ' The function uses the following variables ' strText is used to pass the text to be trimmed ' intCharacters is used to indicate at what ammount of characters the text should be trimmed If Len(strText) > intCharacters Then If inStr(100,strText," ") > intCharacters Then strText = Left(strText,inStr(intCharacters,strText," ")) & "..." ElseIf inStr(intCharacters,strText," ") = intCharacters Then strText = Left(strText,intCharacters) & "..." End If End If fncTrimText = strText End Function %>
TheFeed = "http://www.amadirectlink.com/amadirectlink.xml" Set objXML = Server.CreateObject("Microsoft.XMLDOM") objXML.Async = False objXML.SetProperty "ServerHTTPRequest", True objXML.ResolveExternals = True objXML.ValidateOnParse = True objXML.Load(TheFeed) CellCount = 0 If (objXML.parseError.errorCode = 0) Then Set objRoot = objXML.documentElement If IsObject(objRoot) = False Then Response.Write "There was an error retrieving the news feed" Else Set objItems = objRoot.getElementsByTagName("item") If IsObject(objItems) = True Then For Each objItem in objItems On Error Resume Next TheTitle = objItem.selectSingleNode("title").Text TheLink = objItem.selectSingleNode("link").Text TheDesc = objItem.selectSingleNode("description").Text TheDate = objItem.selectSingleNode("pubDate").Text Response.Write "" & _ "" & TheTitle & "" & _ "" & _ " " Response.Write TheDesc & _ " " Response.Write TheDate & _ "
" Next End If Set objItems = Nothing End If Else Response.Write "There was an error retrieving the news feed" End If Set objXML = Nothing
While I have not yet (and may never) recover from my addiction to having the Biggest Fastest Most Expensive computer parts I can afford, the experience I've gained writing for this website over the past year or so has hammered home the lesson that most of the time, I'm just wasting my money. And you probably are, too.
Unless you're a professional who needs the power of a high-end workstation, the meanest, cheapest no-name box you can buy is likely more than sufficient for everything you do...except gaming. That's the metric I'm going to use here: frame rates in games, at a decent resolution with good visual effects. Looking at the Steam hardware survey, we can see that the most common gaming resolution is 1680x1050 pixels, so that's what I'll use. The goal is to build a system that will play most modern games at 30fps or better at 1680x1050 with good visual quality (i.e. without having to turn off anti-aliasing or other visual effects) and decent expansion capability for the least amount of money.
Most of us will look to benchmark results to determine a computer's performance. It's like taking your car to the local drag strip and seeing how fast it'll do the 1/4 mile run. But much of the time, a benchmark score has about as much relevance to your computer as your car's 1/4 miles time has to its day-to-day driving experience. This is especially true for synthetic benchmarks: while tuning your system to deliver the bestest fastest results in AIDA64 or PassMark can be fun, all that really matters at the end of the day is how many FPS you can spit out in Crysis, Metro 2033, Bad Company, or whatever your favorite game is.
Sure, having a monster system that delivers triple-digit frame rates on a 30" monitor with the latest DX11 games with all the eye candy turned on confers certain bragging rights...and if bragging rights is what you're after, well, go get those three NVIDIA GTX580 cards and start overclocking them. But don't expect it to make any difference in your gaming experience unless you're running a PhysX-heavy game in 3D Vision on a triple monitor system. What, that's not what you're running? Well, then...
Consider this: first, if your system can maintain 30 frames per second or more on a given game, that's Fast Enough. Very few people can discern the visual difference between 30fps and anything faster. I certainly can't. But even if you can, the absolute limit is 60fps, because that's the refresh frequency of your monitor. It physically can't display more than that, and when you do, you get horizontal "tearing" artifacts, which is why most games these days have an option to sync the frame redraws to the monitor's vertical refresh, effectively capping your frame rate at 60fps. Given this, who cares if your system can generate more frames per second? You're not going to see them.
Second, game developers want to produce games that run well on mid-range systems, because people with Intel 980X systems running dual NVIDIA GTX580 cards don't really make up a large part of the market. Sure, Crysis brought even high-end systems to their knees when it was introduced, but do you want to spend hundreds of dollars to run a single game?
So, what do you need to play current modern games at 1680x1050 with good frame rates and decent visual quality? As it turns out, all you need is a computer that's Fast Enough. Here's what I'd suggest...
Source: Benchmarkreviews.com