[vb.net] tegenovergestelde van IsNumeric?

Pagina: 1
Acties:
  • 114 views sinds 30-01-2008
  • Reageer

  • Predje
  • Registratie: December 2002
  • Laatst online: 03-03-2025
Hey allemaal,

Dit is waarschijnlijk een enorme noob vraag, maar ik kan echt totaal geen oplossing vinden.
Ik moet een controle op enkele velden maken.
Een veld controleer op met IsNumeric(veld1) en bevat dus alleen cijfers.
Veld2 moet ik controleren met het tegenovergestelde van IsNumeric, maar If Not IsNumeric is niet goed genoeg.
Want dan kan veld2 nogsteeds cijfers bevatten, alleen is hij dan niet volledig numeriek.
Het beste wat ik heb bedacht is veld2 om te zetten naar een charArray en dan met een For Loop op IsNumeric te controleren.
Dit vind ik echter een "vieze" oplossing en vraagt nogal wat servercapaciteit gezien het over ruim 500.000 records gaat.
Iemand een idee of hier ook een standaart functie voor is.

p.s. niet boos worden als het echt een basic noob ding is :P

Greetz..

  • Arnout
  • Registratie: December 2000
  • Laatst online: 17-02 21:41
functie isAlphanumeric ?

[ Voor 255% gewijzigd door whoami op 16-05-2006 10:27 ]


  • Equator
  • Registratie: April 2001
  • Laatst online: 21-02 15:50

Equator

Crew Council

#whisky #barista

Is het niet gewoon een string, of mogen er geen vreemde tekens in voorkomen.

Dan zou ik namelijk gewoon een regex nemen. Dat is vele malen sneller als het converten naar charArray om die weer te doorlopen..
Arnout schreef op dinsdag 16 mei 2006 @ 10:16:
StringUtils.isAlphanumeric ?
Er mogen ook cijfer in voorkomen, dan is AlphaNumeric toch niet voldoende of ben ik nu in de war..

[ Voor 37% gewijzigd door Equator op 16-05-2006 10:18 ]


  • Gonadan
  • Registratie: Februari 2004
  • Laatst online: 14:16

Gonadan

Admin Beeld & Geluid, Harde Waren
Equator schreef op dinsdag 16 mei 2006 @ 10:17:
Is het niet gewoon een string, of mogen er geen vreemde tekens in voorkomen.

Dan zou ik namelijk gewoon een regex nemen. Dat is vele malen sneller als het converten naar charArray om die weer te doorlopen..


[...]

Er mogen ook cijfer in voorkomen, dan is AlphaNumeric toch niet voldoende of ben ik nu in de war..
Alfanumeriek betekend toch letters en cijfers?
Daarom werkt die niet omdat alleen letters mogen.
Of ik moet de TS compleet verkeerd begrijpen :)

Look for the signal in your life, not the noise.

Canon R6 | RF 24-70 f/2.8 L | 50 f/1.8 STM | 430EX II
Sigma 85 f/1.4 Art | 100-400 Contemporary
Zeiss Distagon 21 f/2.8


  • Predje
  • Registratie: December 2002
  • Laatst online: 03-03-2025
Gonadan schreef op dinsdag 16 mei 2006 @ 10:21:
[...]

Alfanumeriek betekend toch letters en cijfers?
Daarom werkt die niet omdat alleen letters mogen.
Of ik moet de TS compleet verkeerd begrijpen :)
Nee je hebt het goed, alleen letters ;)

(ik had al iets van AlphaNumeric in m`n hoofd zitten, had het ooit eens gebruikt.. alleen was ik aan het zoeken op "alfaNumeric" en vond dus niets :D

  • Equator
  • Registratie: April 2001
  • Laatst online: 21-02 15:50

Equator

Crew Council

#whisky #barista

AlphaNumeric: Describes the combined set of all letters in the alphabet and the numbers 0 through 9
You are right..
Predje schreef op dinsdag 16 mei 2006 @ 10:23:
[...]


Nee je hebt het goed, alleen letters ;)

(ik had al iets van AlphaNumeric in m`n hoofd zitten, had het ooit eens gebruikt.. alleen was ik aan het zoeken op "alfaNumeric" en vond dus niets :D
Toch een regex dan :)

[ Voor 56% gewijzigd door Equator op 16-05-2006 10:25 ]


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-02 14:52

gorgi_19

Kruimeltjes zijn weer op :9

Werkt een regex niet dan?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Gonadan
  • Registratie: Februari 2004
  • Laatst online: 14:16

Gonadan

Admin Beeld & Geluid, Harde Waren
code:
1
2
3
4
5
6
7
boolean functie isAplha(string) {
  if not isalfanumeriek(string) return false;
  if isIn(0, string) return false;
  ...
  if isIn(9, string) return false;
  return true;
}

is geen vb code maar dat is te lang geleden.
de correcte syntax kan je zelf wel verzinnen ;)

Dit zou een simpele functie zijn om het te controleren.
Niet echt netjes maar ik weet niet of er al één bestaat :)

Look for the signal in your life, not the noise.

Canon R6 | RF 24-70 f/2.8 L | 50 f/1.8 STM | 430EX II
Sigma 85 f/1.4 Art | 100-400 Contemporary
Zeiss Distagon 21 f/2.8


  • Hertog
  • Registratie: Juni 2002
  • Laatst online: 13:05

Hertog

Aut bibat, aut abeat

Er is geen IsAlpha functie, maar wel een Char.IsLetter waarmee het niet zo moeilijk meer is :)
Zie: http://www.vbcity.com/forums/topic.asp?tid=86784

"Pray, v. To ask that the laws of the universe be annulled in behalf of a single petitioner, confessedly unworthy." --Ambrose Bierce, The Devil's Dictionary


  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Je hebt het over records ... een database dus? Welke?
Je kan namelijk ook met een regex zoeken.
MSSQL:
SQL:
1
2
3
4
5
SELECT PATINDEX('%[0-9]%', 'foobar')
0

SELECT PATINDEX('%[0-9]%', 'foo5bar')
4
:)

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


  • Predje
  • Registratie: December 2002
  • Laatst online: 03-03-2025
kenneth schreef op dinsdag 16 mei 2006 @ 10:29:
Je hebt het over records ... een database dus? Welke?
Je kan namelijk ook met een regex zoeken.
MSSQL:
SQL:
1
2
3
4
5
SELECT PATINDEX('%[0-9]%', 'foobar')
0

SELECT PATINDEX('%[0-9]%', 'foo5bar')
4
:)
Nee geen database maar een .CSV (die ben ik dus met deze code wel aan het omzetten naar een database (MySql).

  • Predje
  • Registratie: December 2002
  • Laatst online: 03-03-2025
Hertog schreef op dinsdag 16 mei 2006 @ 10:27:
Er is geen IsAlpha functie, maar wel een Char.IsLetter waarmee het niet zo moeilijk meer is :)
Zie: http://www.vbcity.com/forums/topic.asp?tid=86784
Dat is idd het tegenovergestelde, echter vertelde ik ook in de TS dat ik al zo`n oplossing had (If Not IsNumeric per charArray)
Char.Isletter is dus wel goed, maar niet voor de hele string.

In je link vind ik wel de volgende code
code:
1
2
3
4
5
6
7
8
9
 Friend Shared Function LettersOnly(ByVal str As String) As Boolean
        Dim i As Integer
        For i = 0 To str.Length - 1
            If Not Char.IsLetter(str, i) Then
                Return False
            End If
        Next
        Return True
    End Function

Wel beter, hoef dus niet op te breken in een Array.

Toch gek dat ik wel ineens kan kijken op IsNumeric, maar per letter moet op IsLetter.

Regex lijkt ook een optie, zal eens kijken.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-02 14:52

gorgi_19

Kruimeltjes zijn weer op :9

Wellicht krijg je van http://aspalliance.com/80 nog ideeen; Char.IsLetter verwacht ik dat sneller is dan een regex, maar dat moet je uittesten. IsNumeric komt uit Microsoft.VisualBasic, dus IsLetter zal dan nooit bestaan hebben in een oude VB versie. :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Hertog
  • Registratie: Juni 2002
  • Laatst online: 13:05

Hertog

Aut bibat, aut abeat

Predje schreef op dinsdag 16 mei 2006 @ 10:39:
[...]


Dat is idd het tegenovergestelde, echter vertelde ik ook in de TS dat ik al zo`n oplossing had (If Not IsNumeric per charArray)
Char.Isletter is dus wel goed, maar niet voor de hele string.

In je link vind ik wel de volgende code
code:
1
2
3
4
5
6
7
8
9
 Friend Shared Function LettersOnly(ByVal str As String) As Boolean
        Dim i As Integer
        For i = 0 To str.Length - 1
            If Not Char.IsLetter(str, i) Then
                Return False
            End If
        Next
        Return True
    End Function

Wel beter, hoef dus niet op te breken in een Array.

Toch gek dat ik wel ineens kan kijken op IsNumeric, maar per letter moet op IsLetter.

Regex lijkt ook een optie, zal eens kijken.
Wat ik bedoelde is dat er dus in die link staat dat er geen andere functie is. En met dat Char.IsLetter bedoelde ik ook die code die in de link stond. Ik denk dat het gewoon het handigst is die code te kopieren en te gebruiken. En ik ben het met je eens dat het vreemd is dat er wel een IsNumeric en IsAlphaNumeric is, maar geen IsAlpha voor een string..

"Pray, v. To ask that the laws of the universe be annulled in behalf of a single petitioner, confessedly unworthy." --Ambrose Bierce, The Devil's Dictionary

Pagina: 1