Wegens verhuizing te koop gevraagd: Sociaal leven in omgeving Arnhem
Zelf functie schrijven zoiets als met Instr en Isnumeric functie... om te zoeken naar een waarde in de string.... zoiets als:
strLookAfter is een string waarde waar die eerst naar moet zoeken.. ooh ja posstring is de string die je doorzoekt..
code:
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
| Function ExtractLastFourNumber(PosString As String, Optional strLookAfter As String) As Integer
'Returns a integer number of a Position string
Dim iPos As Integer
Dim TempNumber As String
Dim iStartPos As Integer
Dim iEndPos As Integer
If InStr(1, PosString, strLookAfter) = 0 Then
iStartPos = 1
Else
iStartPos = InStr(1, PosString, strLookAfter) + Len(strLookAfter)
End If
iEndPos = Len(PosString)
For iPos = iStartPos To iEndPos
If IsNumeric(CStr(Mid(PosString, iPos, 1))) Then
TempNumber = TempNumber & CStr(Mid(PosString, iPos, 1))
ElseIf Mid(PosString, iPos, 1) = " " Then
' LastPos = iPos + 1
Exit For
End If
Next
ExtractLastFourNumber = CInt(TempNumber)
End Function |
strLookAfter is een string waarde waar die eerst naar moet zoeken.. ooh ja posstring is de string die je doorzoekt..
Zo lijkt het ineens weer een script request
.... nou ja in ieder geval bedankt, ik zal eens wat stoeien met die twee eerste functies.
Wegens verhuizing te koop gevraagd: Sociaal leven in omgeving Arnhem
Tja... ik ben benieuwd of je nog iets anders vindt...
Ik heb nu zelf een functie geschreven die het voor elkaar zou moeten krijgen, maar er gaat toch iets fout. Ik ben een beetje een newbie op VB, dus niet zeuren als de fout iets heel simpels blijkt te zijn 
De functie Split() split niet, de Array bar bevat 1 element (de hele input string)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| Bar = Split(BarcodeStr, "")
Upper = UBound(Bar)
Interupted = False
For XX = 0 To Upper
If (IsNumeric(Bar(Upper - XX)) And !Interupted) Then
Counter = Bar(Upper - XX) + Counter
Else
Interupted = True
Header = Bar(Upper - XX) + Header
End If
Next XX
Counter = Counter + X
BarcodeStr = Header + Counter |
De functie Split() split niet, de Array bar bevat 1 element (de hele input string)
Wegens verhuizing te koop gevraagd: Sociaal leven in omgeving Arnhem
Verwijderd
Als je zeker weet dat je string aan het einde 4 cijfers heeft kun je het volgende doen:
[VB]
Dim strString
strString = "dfjkgjdfjkghjk4444"
strString = Mid(strString, Len(strString) - 3, 4)
[/VB]
[VB]
Dim strString
strString = "dfjkgjdfjkghjk4444"
strString = Mid(strString, Len(strString) - 3, 4)
[/VB]
Is niet zo vreemd, je split op "", een lege string dus.
Doe eens een test string als "blah woef" en splitten op spatie, en je zal zien dat de split functie het op zich prima doet.
Doe eens een test string als "blah woef" en splitten op spatie, en je zal zien dat de split functie het op zich prima doet.
Exact expert nodig?
[Wat hier stond was niet correct, vergeef mij voor mijn slechte lezen van de MSDN]
En je hebt dus gelijk..... stom van meOp maandag 22 oktober 2001 10:58 schreef CrazyD_at_work het volgende:
Is niet zo vreemd, je split op "", een lege string dus.
Doe eens een test string als "blah woef" en splitten op spatie, en je zal zien dat de split functie het op zich prima doet.
Wegens verhuizing te koop gevraagd: Sociaal leven in omgeving Arnhem
Je kunt ook de InStrRev gebruiken. Daarmee zoek je vanaf de achterkant van de string terug naar voren. Als het deel voor de cijfers letters zijn, dan kun je hiermee eenvoudig die splitsing maken.
MSX 2 rulez more
Dit werkt eindelijk
met dank aan DuLongue
code:
1
2
3
4
5
6
7
8
9
10
11
12
| Counter = Mid(BarcodeStr, Len(BarcodeStr) - 2, 3)
Header = Mid(BarcodeStr, 1, Len(BarcodeStr) - 3)
Counter = CInt(Counter)
If Counter > 99 Then
Counter = Counter + Y
Counter = CStr(Counter)
Else
Counter = Counter + Y
Counter = 0 + CStr(Counter)
End If
BarcodeStr = Header + Counter |
Wegens verhuizing te koop gevraagd: Sociaal leven in omgeving Arnhem
Zo te zien ben je met een barcode programma bezig. Er zijn al een aantal van die progjes, zoals btoolOp maandag 22 oktober 2001 10:56 schreef Enigma69 het volgende:
Ik heb nu zelf een functie geschreven die het voor elkaar zou moeten krijgen, maar er gaat toch iets fout. Ik ben een beetje een newbie op VB, dus niet zeuren als de fout iets heel simpels blijkt te zijn
code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15Bar = Split(BarcodeStr, "") Upper = UBound(Bar) Interupted = False For XX = 0 To Upper If (IsNumeric(Bar(Upper - XX)) And !Interupted) Then Counter = Bar(Upper - XX) + Counter Else Interupted = True Header = Bar(Upper - XX) + Header End If Next XX Counter = Counter + X BarcodeStr = Header + Counter
De functie Split() split niet, de Array bar bevat 1 element (de hele input string)
Pagina: 1