Newsgroup: it.comp.lang.visual-basic
Titolo: stringa carattere per carattere

Salve a tutti,
    Come da oggetto sto cercando una funzione o procedura che mi permetta di
esaminare una stringa carattere per carattere.
    Il mio problema è che all'interno di un db devo ricercare dei cognomi
che potrebbero essere anche "Dall'Aglio", però il metodo find di adodc/dao
mi provoca un errore perché considera le stringhe tra apici singoli, quindi
volevo mettere anziche un apice, quelli necessari (2 o 3 devo guardare).
    Grazie a tutti per l'interessamento e per le eventuali risposte.

 wrote in message 8fu9qh$4u8$1...@news.IT.net...


...



Ma no, al posto degli apici usa il corrispettivo chr(34) ad esempio:
...........chr(34) & "Dell'Aglio" & chr(34)
Nota che i doppi apici servono per racchiudere la stringa, ok?
P.S. Una query non è altro che una stringa, pertanto come tale deve
essere trattata.
Ciao
Robin

 ha scritto nel messaggio
news:ThgjOXgqbczZbv...@4ax.com...

Utilizzando un stringa di  ricerca like le stringhe sono racchiuse tra apici
singoli:
adodc.recordset.Find ("CognomeNome like _'_" &
frmConcessionario.txtConc(24).Text & "_'_") L'underscore è messo per
evidenziare l'apice.


Non devo effettuare una ricerca specifica per il fottutissimo sig.
dell'aglio, ma tutti i cognome per fare come un report, non è importante
spiegarlo.
Il segno di percento (%) per cosa sta?


Sì, penso proprio che la userò, grazie.

che potrebbero essere anche "Dall'Aglio",
Per questo problema mi sono creato una funzioncina semplice semplice
che raddoppia tutti gli apici che trova in una stringa da passare a
SQL...
'~~~~~~~~~~~~~~~~~ RaddoppiaCarattere ~~~~~~~~~~~~~~~~~F
' Restituisce una stringa uguale a quella data ma con  |
' il carattere raddoppiato.                            |
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
'Sintassi:                                             |
' string = RaddoppiaCarattere(Testo, Carattere)        |
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
'Testo      String  Testo in cui raddoppiare il        |
'                   Carattere specificato              |
'Carattere  String  Carattere da raddoppiare nel Testo |
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'
Public Function RaddoppiaCarattere( _
	Testo As String, _
	Carattere As String _
) As String
    Dim intPosIniz As Integer
    Dim intPosFine As Integer
    Dim strTemp as String
    '   Inizializza le variabili
    intPosIniz = 1
    intPosFine = 1
    strTemp  = vbNullString
    '   Inizio ciclo di scansione/aggiunta
    Do
        '   Cerca la prima posizione del Carattere nel Testo
        '   successiva alla posizione finale
        intPosFine = InStr(intPosFine, Testo, Carattere)
        '   Se esiste...
        If intPosFine <> 0 Then
            '   Raddoppia il carattere
            strTemp  = strTemp  _
              & Mid$(Testo, intPosIniz, intPosFine - intPosIniz + 1) _
              & Carattere
            '   Sposta la posizione al carattere successivo del Testo
            intPosFine = intPosFine + 1
            intPosIniz = intPosFine
        End If
    Loop Until intPosFine = 0 Or intPosFine > Len(Testo)
    '   Se non si è trovata corrispondenza...
    If RaddoppiaCarattere = vbNullString Then
        '   ...il risultato è uguale al Testo dato
        RaddoppiaCarattere = Testo
    Else
        '   ...altrimenti aggiunge i caratteri finali
        RaddoppiaCarattere = strTemp + Mid(Testo, intPosIniz)
    End If
End Function
*******************************************
Se nel debug scrivo:
? RaddoppiaCarattere("'na volta venne un'omo che disse ayo'", "'")
Mi risulta:
''na volta venne un''omo che disse ayo''
... modifica dell'ultim'ora! Ho scoperto l'esistensa di una funzione
Replace di VB ^_^'
Cerca nell'help per chiarimenti...