Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    controllo se la stringa è una data.

    Ciao ragazzi,
    ho un problema...io ho una stringa (di qualsiasi tipo, quindi non prevededibile in nessun modo) e devo controllare se corrisponde al formato data dd/mm/yyyy.
    Ho fatto una cosa simile:
    IF NOT ( isnull(DATACOMM) or DATACOMM="" ) THEN
    ControlData= Split(DATACOMM,"/")

    Giorno = ControlData(0)
    Mese = ControlData(1)
    Anno = ControlData(2)


    IF (isnull(Giorno) or Giorno="" or isnull(Mese) or Mese="" or isnull(Anno) or Anno="") THEN
    FlagErrore="1"
    ELSE
    IF ((cint(Giorno)<1 or cint(Giorno)>31) OR (cint(Mese)<1 or cint(Mese)>12) OR (cint(Anno)<1000 or cint(Anno)>9999)) THEN
    FlagErrore="1"
    END IF
    END IF
    END IF

    Il problema del codice qui' descritto è che se la stringa DATACOMM è uguale a "pippo" mi va in errore (subscript out of range) perchè la seconda posizione dell'array (Mese= ControlData(1)) non esiste...
    come posso scavalcare il problema?
    Grazie

  2. #2
    c'è la funzione già fatta
    codice:
    isDate(tuaVariabile)
    Purtroppo bisogna imparare che il computer non sbaglia...fa solo quello che gli dici di fare

    www.netpolaris.it

  3. #3
    Cosa mi restituisce nel caso in cui la stringa è in formato corretto e invece nel caso di formato errato?
    Comunque grazie mille!

  4. #4
    true se è una data false altrimenti
    Purtroppo bisogna imparare che il computer non sbaglia...fa solo quello che gli dici di fare

    www.netpolaris.it

  5. #5
    Sei un grande....bacioni! :-D

  6. #6
    Originariamente inviato da Shagrat
    c'è la funzione già fatta
    codice:
    isDate(tuaVariabile)
    Il problema è che se gli passo miavariabile=12-12-12 se la beve e mi da True mentre io mi aspetto un False...mi serve una funzione che mi accetti solo il formato dd/mm/yyyy.

  7. #7
    tra l'altro mi aspetto che il separatore sia "/" e non "-"....

  8. #8
    Utente di HTML.it L'avatar di Corwin
    Registrato dal
    Jan 2002
    Messaggi
    584
    codice:
    Set regEx = New RegExp 
    regEX.Pattern = "^[0-9]{2}/[0-9]{2}/[0-9]{4}$"
    if regEx.Test(DATACOMM) Then
    Str = Split(Stringa,"/")
    If IsDate(Str(1) & "-" & Str(0) & "-" & Str(2)) Then
    ' è una data in formato dd/mm/yyyy
    else
    FlagErrore = "1"
    end if
    else
    FlagErrore = "1"
    end if
    I don't wanna have to shout it out / I don't want my hair to fall out
    I don't wanna be filled with doubt / I don't wanna be a good boy scout
    I don't wanna have to learn to count / I don't wanna have the biggest amount
    I don't wanna grow up

  9. #9
    Io ho fatto questo accrocco e funziona :-D

    '**********controllo DATACOMM*************
    IF NOT ( isnull(DATACOMM) or DATACOMM="" ) THEN
    controlData = Split(DATACOMM,"/")
    PosizioniData=ubound(controlData) + 1

    IF PosizioniData<>3 THEN
    FlagErrore="1"
    ELSE

    Giorno = ControlData(0)
    Mese = ControlData(1)
    Anno = ControlData(2)

    IF (isnull(Giorno) or Giorno="" or isnull(Mese) or Mese="" or isnull(Anno) or Anno="") THEN
    FlagErrore="1"
    ELSE
    IF ((cint(Giorno)<1 or cint(Giorno)>31) OR (cint(Mese)<1 or cint(Mese)>12) OR (cint(Anno)<1000 or cint(Anno)>9999)) THEN
    FlagErrore="1"
    END IF
    END IF

    END IF
    END IF
    '*****************************************



    se puo' servire...o lascio qui'

  10. #10
    Utente di HTML.it L'avatar di Corwin
    Registrato dal
    Jan 2002
    Messaggi
    584
    Mica tutti i mesi hanno 31 giorni...
    I don't wanna have to shout it out / I don't want my hair to fall out
    I don't wanna be filled with doubt / I don't wanna be a good boy scout
    I don't wanna have to learn to count / I don't wanna have the biggest amount
    I don't wanna grow up

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.