Newsgroup: it.comp.appl.access
Titolo: Dir() e caratteri unicode

Ciao a tutti,
riposto una domanda che non ha ricevuto risposta, magari a qualcuno è venuto 
in mente qualcosa.
La funzione Dir restituisce caratteri ascii mentre i nomi di cartelle e file 
contengono caratteri unicode.
In pratica facendo un dir di una certella che contiene caratteri polacchi 
(tipo A con l'ondina Unicode 0104) la funzione restituisce il carattere 
ascii più simile (A ascii 65) col risultato che se io cerco di richiamare lo 
stesso file ottengo l'errore "file non trovato".
Qualcuno ha mai affrontato il problema?
Grazie
Sib
-- 
http://www.gestionedati.com
 


Ciao Sib non ho mai avuto problemi del genere, ma non ti conviene convertire
in ogni caso i nomi di confronto in ascii?
-- 
_ _
Ciao
MAssimiliano Amendola            
www.accessgroup.it
Cisa - Conferenza Italiana per Sviluppatori Access
Info:  
www.donkarl.com/it

 in ogni caso i nomi di confronto in ascii?
Cioè rinominare a mano centinaia di cartelle sparse su un hd?
e comunque perderei in generalizzazione e portabilità del codice.
Ci deve pur essere un metodo per gestire questi caratteri.
Ciao
Sib
-- 
http://www.gestionedati.com
 


No intendevo i termini del confronto


 No intendevo i termini del confronto
Allora non ho capito.
Mi spieghi meglio cosa intendi?
Grazie



Quando tu cerchi di chiamare il file con caratteri ASCII trasforma prima in
ASCII il path da richiamare


 ASCII il path da richiamare
Il problema è che non posso proprio farci niente con quel file, neanche 
rinominarlo.
Forse se fai la prova ti rendi conto meglio del mio problema.
Da codice non c'è alcun modo di leggere il nome del file per poi accedervi.



Scusa Sib se non sono assolutamente chiaro. Ma fammi capire, il problema è
l'accento circonflesso che tronca le parole > di 8 caratteri?


 l'accento circonflesso che tronca le parole > di 8 caratteri?
no, il problema è un carattere unicode che viene interpretato come un
carattere ASCII.
Per renderti conto, crea una nuova maschera, inserisci una casella testo,
nella proprietà Valore predefinito della casella testo metti
=Chrw("&h0104")
Apri la maschera e ti verrà fuori la famosa A con il piedino prolungato.
Adesso apri VBA e nella finestra immediata scrivi
? Forms!Maschera1.Testo0
Ti verrà stampata una A normale, ecco questa è la simulazione di quanto
succede a Sib quando si fa restituire il nome del file dalla funzione Dir().
Per Sib:
Gli insiemi *files* *folders* dell'oggetto windows script rendono il nome
del file corretto, forse ti può essere d'aiuto.
Ciao
-- 
Giorgio Rancati
[Office Access MVP]

 =Chrw("&h0104")
anzi metti
----
="Ciao M"+Chrw("&h0104")
----
viene più carino
:-)


 del file corretto, forse ti può essere d'aiuto.
Esatto Giorgio,
hai una sintassi di esempio bagari?
Ad ogni modo provo subito...
Ciao e grazie
Sib
-- 
http://www.gestionedati.com
 

 del file corretto, forse ti puņ essere d'aiuto.
Ho risolto con:
Application.FileSearch
funziona perfettamente in termini di ricerca, ma restituisce comunque il 
nome ASCII, ora vedo...


 nome ASCII, ora vedo...
Come non detto, il nome viene fuori sbagliato se lo inserisci in una stringa 
o nel messaggio su una msgbox, ma se lo schiaffi nella cella di excel viene 
fuori perfetto.
OK
Grazie


Grazie
Prego :-)
comunque il nome del file rimane corretto anche se lo inserisci in una
variabile di tipo stringa.
Le stringhe di Access dalla versione 2000 in avanti supportano i caratteri
unicode, quello che confonde molto è la stampa nella finestra immediata e
nella msgbox.


 nella msgbox.
In effetti avevo controllato la stringa con un debug.print.
D'altro canto il codice lo uso dentro un file excel, che però dovrebbe 
supportare perfettamente gli unicode essendo XP.
Chissà perchè non si sono curati di rettificare la funzione DIR che non mi 
sembra certo secondaria all'interno di una applicazione...
