Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di goku370
    Registrato dal
    Oct 2003
    Messaggi
    569

    [VB6] Estrarre numeri da stringa

    Una domanda semplice a cui non riesco a dare una risposta:
    se io ho una stringa come, ad esempio, "value='12345' abc" come faccio a ricavare solo la parte numerica ("12345")
    Il numero è sempre compreso tra i due apici ma il numero di cifre del numero può variare.....(scusate il gioco di parole)
    Una tecnologia sufficientemente avanzata è indistinguibile dalla magia. Terza legge di Clarke

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Trova con la funzione Instr la posizione del primo apice e con le funzioni Val e Mid$ valuti il numero.

  3. #3
    Utente di HTML.it L'avatar di goku370
    Registrato dal
    Oct 2003
    Messaggi
    569
    Un attimo. Allora io trovo con inStr la posizione del primo apice. Fin quì tutto ok. Come uso le altre due funzioni, in particolare a cosa serve la funzione Val?
    Una tecnologia sufficientemente avanzata è indistinguibile dalla magia. Terza legge di Clarke

  4. #4
    Utente di HTML.it L'avatar di Boolean
    Registrato dal
    Oct 2005
    Messaggi
    758
    codice:
    Dim t As String
    Dim p1 As Integer, p2 As Integer
    Dim Valore As Long
    
    t = "value='12345' abc"
    
    p1 = InStr(1, t, "'") + 1           'trovo la posizione del primo apice
    p2 = InStr(p1, t, "'")              'trovo la posizione del secondo apice
    Valore = Val(Mid(t, p1, p2 - p1))   'estraggo il valore tra i due apici
                                        'convertendolo in numero
    Boolean

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da Boolean
    codice:
    Dim t As String
    Dim p1 As Integer, p2 As Integer
    Dim Valore As Long
    
    t = "value='12345' abc"
    
    p1 = InStr(1, t, "'") + 1           'trovo la posizione del primo apice
    p2 = InStr(p1, t, "'")              'trovo la posizione del secondo apice
    Valore = Val(Mid(t, p1, p2 - p1))   'estraggo il valore tra i due apici
                                        'convertendolo in numero
    Boolean
    O piu' semplicemente

    codice:
        Dim t As String
        Dim p As Long
        Dim Valore As Long
    
        t = "value='12345' abc"
    
        p = InStr(1, t, "'") + 1
        Valore = Val(Mid(t, p))
    Comunque, Boolean, se non ti avessi dato io la strada ...

  6. #6
    Utente di HTML.it L'avatar di Boolean
    Registrato dal
    Oct 2005
    Messaggi
    758
    Originariamente inviato da oregon
    Comunque, Boolean, se non ti avessi dato io la strada ...
    :maLOL:

    effettivamente... e figurati che anche così ci ho dovuto lavorare!!!

    in effetti il tuo metodo è piuttosto "sbrigativo"
    io andavo più per il sottile estraendo solo il numero

    Ciao!

    Boolean

  7. #7
    Utente di HTML.it L'avatar di Jupy64
    Registrato dal
    Sep 2004
    Messaggi
    1,151
    Ciao, altra alternativa, usare la funzione Split.
    codice:
    Dim t As String
    Dim tmp() As String
    Dim numero As Long
    
    t = "value='12345' abc"
    tmp = Split(t, "'")
    numero = tmp(1)
    Anche se in informatica niente deve essere dato per scontato...in questi esempi, è dato per scontato che nella stringa, gli unici apici siano quelli che delimitano il numero.
    Jupy

  8. #8
    Utente di HTML.it L'avatar di goku370
    Registrato dal
    Oct 2003
    Messaggi
    569
    Grazie a tutti. Molto esaustivi, ora ho solo l'imbarazzo della scelta...
    Una tecnologia sufficientemente avanzata è indistinguibile dalla magia. Terza legge di Clarke

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.