Unix doesn't prevent a user from doing stupid things, because that would necessarily prevent them from doing brilliant things.
while true ; do echo -n "bla" ; sleep 1 ; done
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
$ is string
% is integer
& is long
# is datum (dacht ik)
.. en die voor Single en Double ben ik vergeten omdat ik die vroeger in QB zelden gebruikte, en in VB declareer ik gewoon altijd alles netjes en gebruik dus geen typekarakters.
4200Wp ZO + 840Wp ZW + 1680Wp NW | 14xIQ7+ + 1xDS3-L | MTVenusE | HWP1
Het is nu niet meer nodig... gewoon Dim [naam] as String...Janoz schreef op 23 september 2002 @ 11:24:
Dat was vroeger de syntax van basic. Een $ erachter betekende dat het een String was. Schijnt tegenwoordig in VB dus niet meer nodig te zijn?
Tnx voor de snelle reply
Unix doesn't prevent a user from doing stupid things, because that would necessarily prevent them from doing brilliant things.
while true ; do echo -n "bla" ; sleep 1 ; done
Verwijderd
single = !johnwoo schreef op 23 september 2002 @ 11:26:
Ieder type heeft een karakter, dit stamt nog uit de oude Basic tijd. Als je gewoon Dim strBlaat As String gebruikt heb je dat niet nodig. Maar je kunt variabelen die zonder type gedeclareerd (of niet gedeclareerd; beide zijn bad practice), door VB als bepaald type laten zien met dat karakter.
$ is string
% is integer
& is long
# is datum (dacht ik)
.. en die voor Single en Double ben ik vergeten omdat ik die vroeger in QB zelden gebruikte, en in VB declareer ik gewoon altijd alles netjes en gebruik dus geen typekarakters.
double = #
Geldt hetzelfde bij string-manipulatie functies (Str, Left, Mid enzo kom ik ook wel eens tegen als Str$, Left$, Mid$)
Unix doesn't prevent a user from doing stupid things, because that would necessarily prevent them from doing brilliant things.
while true ; do echo -n "bla" ; sleep 1 ; done
“Advertising says to people, 'Here's what we've got. Here's what it will do for you. Here's how to get it.'”
4200Wp ZO + 840Wp ZW + 1680Wp NW | 14xIQ7+ + 1xDS3-L | MTVenusE | HWP1
johnwoo schreef op 23 september 2002 @ 11:40:
Bij de string functies is het wel aan te raden het $ karakter te gebruiken. Anders geven ze een Variant ( == traag) terug, die dan in je string variabele gecast wordt. Met een $ teken geven ze direct een string terug.
Mijn dank is groot
Unix doesn't prevent a user from doing stupid things, because that would necessarily prevent them from doing brilliant things.
while true ; do echo -n "bla" ; sleep 1 ; done
Verwijderd
[ Voor 0% gewijzigd door Verwijderd op 23-09-2002 11:49 . Reden: typo ]
Veel optimalizaties begin je sowieso pas te merken bij grote aantallenVerwijderd schreef op 23 september 2002 @ 11:49:
Dollar teken is niet nodig, maar vaak wel net iets sneller (wat pas merkbaar is bij duizenden)
Exact expert nodig?
Ik heb het net getest met 1.000.000 left/left$ bewerkingen in een loop en bij left$ duurde het 9,7 seconden en bij left 10,5 ofzo.Crazy_D schreef op 23 september 2002 @ 14:42:
[...]
Veel optimalizaties begin je sowieso pas te merken bij grote aantallenMaar alle beetjes helpen en dat is het imho geen slechte gewoonte om Left$ te gebruiken ipv Left
Dus toch een paar procentjes verschil...
[ Voor 0% gewijzigd door Demo op 23-09-2002 14:52 . Reden: typo ]
Unix doesn't prevent a user from doing stupid things, because that would necessarily prevent them from doing brilliant things.
while true ; do echo -n "bla" ; sleep 1 ; done
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
| Option Explicit
Private Sub Form_Load()
Dim T As Long
Dim U As Long
Dim s As Single
Dim sT(1) As Single
Dim bla As String
Const cLoopCount = 15
Const cTestCount = 1000000
Me.Show
DoEvents
sT(0) = 0: sT(1) = 0
Me.Print "Testing " & cTestCount & " iterations, repeating " & cLoopCount & " times for better average" & vbCrLf
Me.Print "Testing ""Left"" function", ":";
For U = 1 To cLoopCount
Me.Print ".";
s = Timer
For T = 1 To cTestCount
bla = Left("sdkjhg lakjsdgfoijag oriusg", 5)
Next T
sT(0) = sT(0) + Timer - s
Next U
Me.Print
Me.Print "Testing ""Left$"" function", ":";
For U = 1 To cLoopCount
Me.Print ".";
s = Timer
For T = 1 To cTestCount
bla = Left$("sdkjhg lakjsdgfoijag oriusg", 5)
Next T
sT(1) = sT(1) + Timer - s
Next U
Me.Print vbCrLf
Me.Print "Average loop time ""Left"" : ", Round(sT(0) / cLoopCount, 5) & " sec/" & cTestCount & " iterations"
Me.Print "Average loop time ""Left$"" : ", Round(sT(1) / cLoopCount, 5) & " sec/" & cTestCount & " iterations"
Me.Print vbCrLf & "Left:Left$ Ratio = 1:" & Round(sT(0) / sT(1), 2)
End Sub |
OK, de code is bagger (snel snel in mekaar geflanst), maar het verschil is duidelijk. Mijn results:
LEFT functie : 0.57917 sec/1.000.000 iteraties
LEFT$ functie: 0.20937 sec/1.000.000 iteraties
Ratio: 1 : 2.77
Dus: Left$ is 2.77 keer sneller!!! (En na een compile met alle optimizations aan zelfs 3.2!!)
Machine: 2Ghz Pentium IV, VB6
Timing is bagger, maar goed zat voor quick results. Dit is (nogmaals) een vluggertje. Voor de newbies: Gewoon hele zooi plakken in vb en runnen die hap...
There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.
Je eigen tweaker.me redirect
Over mij
johnwoo schreef op 23 september 2002 @ 11:40:
Bij de string functies is het wel aan te raden het $ karakter te gebruiken. Anders geven ze een Variant ( == traag) terug, die dan in je string variabele gecast wordt. Met een $ teken geven ze direct een string terug.
niet als je gewoon je returntype definieert
even mijn vb-kennis weer naar boven halen:
1
2
3
| Public Function blaat () As String blaat = "woei" End Function |
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
intI
strBleh
lngGrootcijfer
in MSDN vind je vast wel meer over de naamgeving
If it ain't broken it doesn't have enough features
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Klopt maar bij eigen functie werkt die $ ook niet, zit enkel bij een aantal ingebouwde functies Left vs. Left$ dus bv.oisyn schreef op 23 september 2002 @ 23:22:
niet als je gewoon je returntype definieert
even mijn vb-kennis weer naar boven halen:
Visual Basic .NET:
1 2 3 Public Function blaat () As String blaat = "woei" End Function
Enne uh 1.000.000 is dan ook best vaak hoor
Exact expert nodig?
http://vbfibre.digitalric....asp?tbl=tblStrings&rcd=1
[/informatieve spam]
Trouwens, lngLong,strString e.d. waardeer ik het meest persoonlijk..
Edit
om reacties te besparen, er zitten wat (domme) foutjes op de site, ik weet ervan, maar heb weinig tijd om de DB bij te werken :x
Het ging hier om de ingebouwde string manipulatie routines zoals Left$, Right$, Mid$, UCase$ en LCase$.oisyn schreef op 23 september 2002 @ 23:22:
[...]
niet als je gewoon je returntype definieert
even mijn vb-kennis weer naar boven halen:
Visual Basic .NET:
1 2 3 Public Function blaat () As String blaat = "woei" End Function
4200Wp ZO + 840Wp ZW + 1680Wp NW | 14xIQ7+ + 1xDS3-L | MTVenusE | HWP1
There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.
Je eigen tweaker.me redirect
Over mij
Zeer nuttige spam!41.6C.6D.61.72 schreef op 24 september 2002 @ 08:14:
[informatieve spam]
http://vbfibre.digitalric....asp?tbl=tblStrings&rcd=1
[/informatieve spam]
Trouwens, lngLong,strString e.d. waardeer ik het meest persoonlijk..
Edit
offtopic:
om reacties te besparen, er zitten wat (domme) foutjes op de site, ik weet ervan, maar heb weinig tijd om de DB bij te werken :x
Heb met veel plezier (en verbazing) die dingen zitten lezen...
Sommige (simpele) aanpassingen geven een enorm verschil in performance als ik het zo lees
Unix doesn't prevent a user from doing stupid things, because that would necessarily prevent them from doing brilliant things.
while true ; do echo -n "bla" ; sleep 1 ; done