Newsgroup: it.comp.appl.access
Titolo: convertire un testo Ascii in caratteri "normali"

ho delle stringhe di questo tipo , scritte in ascii come faccio a
convertirle?
ogni tre cifre corrispondono a una lettera, esiste una funzione in access Xp
che mi converte da ascii a carattere normale?
1150971091010321051151161111081111031050991110460130100130100651121121111151
0512210511111010103210010503210011410111009710310310503210511003209711511210
5114097122105111110101046
Grazie per l'aiuto
Stefano Kabisa

 ha scritto nel messaggio
news:Z39Lb.71413$_P.27...@news4.tin.it...

Una funzione del genere:
Public Function ConvertiStringaAsci(unastringa As String)
ConvertiStringaAsci = Chr(unastringa)
End Function
converte 115 in "s"
Nel tuo caso devi passare alla funzione l'intera stringa e leggere un gruppo
di tre cifre alla volta.
In pratica la funzione va rivista facendo il parsing della stringa.
Ti ricordo che il set di caratteri ANSI comincia da 0 e arriva fino a 255,
molti di questi non sono supportati in Windows ma, per esempio "A"
corrisponde a 65. Voglio dire che mi sembra strano che i gruppi siano solo
di tre cifre e non di due o di una sola cifra.
Fammi sapere.
Ciao, Carlo

 ha scritto nel
messaggio news:Ky9Lb.56655$VW.24...@news3.tin.it...

Sto cercando di fare il parsing della stringa,
Il set è di tre caratteri
es
115
097
109
101
032
non sono ancora riuscito a dividere la stringa (che access considera di una
sola parola) in parti da tre caratteri.
sto quardando tutti i manuali in mio possesso (tanti)
Grazie stefano
Ps
per prova ho scomposto a mano la stringa completa 900 caratteri e viene
tradotta correttamente.

 ha scritto nel messaggio
news:JsaLb.72010$_P.27...@news4.tin.it...

Questo un esempio:
Public Function ConvertiStringaAsci(unastringa As String)as string
Dim pos As Integer, i As Integer
pos = 1
ConvertiStringaAsci = ""
For i = 1 To Len(unastringa)
ConvertiStringaAsci = ConvertiStringaAsci & Chr(Mid(unastringa, pos, 3))
pos = pos + 3
If pos >= Len(unastringa) Then
Exit For
End If
Next i
End Function
Questo il risultato che ho ottenuto con la tua stringa:
same istologico. Apposizione di drenaggi in aspirazione.
Ciao, Carlo
Ciao, Carlo

 > Il set č di tre caratteri

Grazie infinite per l'esempio,
io ha fatto cosě:
Public Function ConvertiStringaAsci(stingadaconv As String)
Dim stingadaconv As String, pippo As Long
Dim partstring As String, a As Long
Dim strconv As String
pippo = Len(stingadaconv)
For a = 1 To pippo
partstring = partstring & Mid$(stingadaconv, a, 1)
If IsFactor(a, 3) Then
    strconv = strconv & Chr(partstring)
    partstring = ""
End If
Next a
MsgBox strconv
End Function
Public Function IsFactor(lngnum As Long, longfactor As Long) As Boolean
IsFactor = Not CBool(lngnum Mod longfactor)
End Function

 > Il set č di tre caratteri

 ho postato un errore prima scusa
Public Function ConvertiStringaAsci(stingadaconv As String)
Dim  pippo As Long
Dim partstring As String, a As Long
Dim strconv As String
pippo = Len(stingadaconv)
For a = 1 To pippo
partstring = partstring & Mid$(stingadaconv, a, 1)
If IsFactor(a, 3) Then
    strconv = strconv & Chr(partstring)
    partstring = ""
End If
Next a
MsgBox strconv
End Function
Public Function IsFactor(lngnum As Long, longfactor As Long) As Boolean
IsFactor = Not CBool(lngnum Mod longfactor)
End Function
ho usato la tua soluzione che mi sembra piů elegante
Grazie per l'aiuto
Stefano (kabisa)