Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23

Discussione: VB6 estrarre numeri

  1. #1

    VB6 estrarre numeri

    Dovrei estrarre da una stringa solamente numeri,non so in che posizione si trovino, i numeri sono composti da 2 cifre e vengono anticipati da un apice. Come si potrebbe fare?

  2. #2
    Utente di HTML.it L'avatar di Jupy64
    Registrato dal
    Sep 2004
    Messaggi
    1,151
    Ciao, se la tua stringa è del tipo:
    codice:
    dim vettNum()
    tuaStringa="ASD'23FGHGF'44DFDDFD"
    vettStr=Split(tuaStringa,"'")
    redim vettNum(ubound(vettStr))
    for i=1 to ubound(vettStr)
       vettNum(i)=left(vettStr(i),2)
    next
    logicamente se tuaStringa inizia con il numero, allora il ciclo for deve iniziare da zero...
    Jupy

  3. #3
    Ciao
    ti ringrazio per la tua tempestiva risposta, ho provato, funziona, ma nella stringa sono presenti più numeri (massimo 4) come posso prelevarli tutti?

  4. #4
    codice:
    Dim arrNumeri() As Integer
    Dim tuaStringa As String
    Dim indx As Byte
    Dim ipos As Byte
    
    tuaStringa = "ASD'23FGHGF'44DFDDFD"
    indx = 0
    For i = 0 To Len(tuaStringa)
        ipos = i + 1
        ichar = Mid(tuaStringa, ipos, 1)
        
        If IsNumeric(ichar) Then
            
            ReDim Preserve arrNumeri(indx) As Integer
            arrNumeri(indx) = ichar
            indx = indx + 1
        End If
    Next
    prude il dito, lui sdraiato
    ha giocato a guardie e ladri col ladro sbagliato

  5. #5
    Ciao
    Con il primo code riuscivo ad estrarre un numero, ma copn questultimo i numeri che visualizzo non sono quelli compresi nella mia stinga.

    se l'apice si trovasse subito dopo il numero e non prima, come devo strutturare il code ?

    il tutto si trova in un form con un pulsante che al click mi dovrebbe fa visualizzare i numeri compresi nella stringa in 3 textbox che in seguito verranno utilizzati per delle operazioni.

    Potreste darmi un aiuto? GRAZIE

  6. #6
    codice:
    'non avevo letto che i numeri che devi estrarre sono composti da due cifre
    'prova così
    
    Dim arrNumeri() As Integer
    Dim tuaStringa As String
    Dim indx As Byte
    Dim ipos As Byte
    
    'apice davanti ai numeri
    tuaStringa = "ASD'23FGHGF'44DFDDFD"
    
    'apice dietro ai numeri
    tuaStringa = "ASD23'FGHGF44'DFDDFD"
    
    indx = 0
    For i = 0 To Len(tuaStringa)
        ipos = i + 1
        ichar = Mid(tuaStringa, ipos, 1)
        
        'se l'apice è davanti ai numeri
        If ichar = "'" Then
            ReDim Preserve arrNumeri(indx) As Integer
            arrNumeri(indx) = Mid(tuaStringa, ipos + 1, 2)
            indx = indx + 1
        End If
        
        'se l'apice è dietro ai numeri
        If ichar = "'" Then
            ReDim Preserve arrNumeri(indx) As Integer
            'arrNumeri(indx) = Mid(tuaStringa, ipos + 1, 2)
            arrNumeri(indx) = Mid(tuaStringa, ipos - 2, 2)
            indx = indx + 1
        End If
    Next
    prude il dito, lui sdraiato
    ha giocato a guardie e ladri col ladro sbagliato

  7. #7
    Non funziona

    la mia stringa "FL 40' a 80% + CV 20' a 88% + FM 35' a 90%"

    dovrei estrarre i seguenti numeri 40 20 35 in text1 text2 text3 tramite un pulsante

  8. #8
    importante:
    i numeri che voglio estrarre non si trovano sempre nella stessa posizione

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    88
    Codice PHP:
      Dim Buffer                      As String
      Dim m_Buffer                    
    As String
      Dim MyArrNumber
    ()               As String
      Dim FlagIsNumeric               
    As Boolean
      Dim nElementArry                
    As Integer
      Dim i                           
    As Integer
      
      nElementArry 
    0
      ReDim MyArrNumber
    (nElementArry)
      
    Buffer "FL 40' a 80% + CV 20' a 88% + FM 35' a 90%"
      
      
    FlagIsNumeric False
      
      
    For 1 To Len(Buffer)
        If 
    IsNumeric(Mid(Bufferi1)) Then
          m_Buffer 
    m_Buffer Mid(Bufferi1)
          
    FlagIsNumeric True
        
    Else
          If 
    FlagIsNumeric Then
            nElementArry 
    UBound(MyArrNumber) + 1
            ReDim Preserve MyArrNumber
    (nElementArry)
            
    MyArrNumber(nElementArry) = m_Buffer
            m_Buffer 
    ""
            
    FlagIsNumeric False
          End 
    If
        
    End If
      
    Next i 

  10. #10
    Utente di HTML.it L'avatar di Jupy64
    Registrato dal
    Sep 2004
    Messaggi
    1,151
    Ciao, se la stringa che contiene i numeri ha sempre il tipo di formattazione che hai detto tu, allora per fare una cosa semplice e veloce:
    codice:
    Dim vettNum() As String
    Private Sub EstraiNumeri(strNum As String)
       Dim i As Integer
       Dim vettStr() As String
       vettStr = Split(strNum, "'")
       ReDim vettNum(UBound(vettStr) - 1)
       For i = 0 To UBound(vettStr) - 1
          vettNum(i) = Right$(vettStr(i), 2)
       Next
    End Sub
    basta richiamare la sub passandogli la tua stringa ad esempio:
    codice:
    tuaStringa = "FL 40' a 80% + CV 20' a 88% + FM 35' a 90%"
    EstraiNumeri(tuaStringa)
    e recuperi i numeri dal vettore vettNum


    N.B. la stringa puo' contenere quanti numeri vuoi..non ha limiti, l'importante che abbia sempre la stessa formattazione che hai detto tu
    Jupy

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.