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?
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?
Ciao, se la tua stringa è del tipo:
logicamente se tuaStringa inizia con il numero, allora il ciclo for deve iniziare da zero...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
![]()
Jupy
Ciao
ti ringrazio per la tua tempestiva risposta, ho provato, funziona, ma nella stringa sono presenti più numeri (massimo 4) come posso prelevarli tutti?
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
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
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
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
importante:
i numeri che voglio estrarre non si trovano sempre nella stessa posizione
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 i = 1 To Len(Buffer)
If IsNumeric(Mid(Buffer, i, 1)) Then
m_Buffer = m_Buffer & Mid(Buffer, i, 1)
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
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:
basta richiamare la sub passandogli la tua stringa ad esempio: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
e recuperi i numeri dal vettore vettNumcodice:tuaStringa = "FL 40' a 80% + CV 20' a 88% + FM 35' a 90%" EstraiNumeri(tuaStringa)
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