Biagio De Franco ha scritto:
Attenzione!! ai caratteri speciali. Ho notato che già la semplice apertura nel Browser del file Xml se contiene caratteri speciali da errore.
Per cui visto che spesso le anagrafiche si importano e quindi con ogni tipo di carattere (soprattutto anagrafiche estere), per tagliare la testa al toro io ho sviluppato una funzione che ripulisce.
E' in Visual Basic....se a qualcuno può servire.....
Function ChTesto_AE(TestoCercato)
Dim TmpTesto, CAR As String, I As Integer
TmpTesto = TestoCercato
For I = 1 To Len(TmpTesto)
CAR = Mid(TmpTesto, I, 1)
If Asc(CAR) > 41 And Asc(CAR) < 58 Then GoTo PROSSIMO
If Asc(CAR) > 64 And Asc(CAR) < 91 Then GoTo PROSSIMO
If Asc(CAR) > 96 And Asc(CAR) < 123 Then GoTo PROSSIMO
Mid(TmpTesto, I, 1) = " "
PROSSIMO:
Next I
ChTesto_AE = TmpTesto
End Function
L'ho modificata in questo modo...penso che così sia più che sufficiente
Function ChTesto_AE(TestoCercato)
Dim TmpTesto, CAR As String, I As Integer
TmpTesto = TestoCercato
For I = 1 To Len(TmpTesto)
CAR = Mid(TmpTesto, I, 1)
If CAR = "&" Then
CAR = "E"
Mid(TmpTesto, I, 1) = "E"
End If
If CAR = "Ò" Or CAR = "Ó" Then
CAR = "O"
Mid(TmpTesto, I, 1) = "O"
End If
If CAR = "Á" Or CAR = "À" Then
CAR = "A"
Mid(TmpTesto, I, 1) = "A"
End If
If CAR = "È" Or CAR = "È" Then
CAR = "E"
Mid(TmpTesto, I, 1) = "E"
End If
If CAR = "Ì" Or CAR = "Í" Then
CAR = "I"
Mid(TmpTesto, I, 1) = "I"
End If
If CAR = "Ù" Or CAR = "Ú" Then
CAR = "U"
Mid(TmpTesto, I, 1) = "U"
End If
If Asc(CAR) > 41 And Asc(CAR) < 58 Then GoTo PROSSIMO
If Asc(CAR) > 64 And Asc(CAR) < 91 Then GoTo PROSSIMO
If Asc(CAR) > 96 And Asc(CAR) < 123 Then GoTo PROSSIMO
Mid(TmpTesto, I, 1) = " "
PROSSIMO:
Next I
'Debug.Print TestoCercato & " --- " & TmpTesto
ChTesto_AE = TmpTesto
end function