2009-04-28 7 views
0

L'objet TextStream Scripting.FileSystemObject prend en charge Unicode de style Windows et «texte brut» modifié par la page de codes système, mais ne semble pas prendre en charge UTF8. Toutefois, il peut réellement diffuser des fichiers verrouillés pour des mises à jour.Existe-t-il un objet exposé à DCOM permettant de diffuser un fichier UTF8 verrouillé en écriture?

ADODB.Stream prend en charge UTF-8 (ou binaire brut), mais ne sera pas "LoadFromFile" un fichier qui a été verrouillé pour la mise à jour, en dépit du fichier pouvant être ouvert dans, disons, le bloc-notes. (Résultats dans l'erreur: le fichier ADODB.Stream n'a pas pu être ouvert avec un code d'erreur de 0x800a0bba) - Ceci malgré essayer d'ouvrir le flux en mode "Read" ou "Shared". Il semble que l'objet COM côté serveur exige plus de verrouillage que je ne le demande réellement.

Y a-t-il d'autres alternatives? J'appelle ceux-ci à distance via DCOM, mais même le test sur le système hôte lui-même entraîne le même comportement.

Idéalement, il y aurait un composant qui agirait comme un flux (c.-à-d. Mécanismes de recherche de support), pourrait streamer les octets bruts (binary) ou gérer du texte brut, Unicode et UTF-8. sont ouverts à l'écriture. Quelqu'un sait-il d'une telle bête?

Répondre

0

Je ne suis pas sûr que ce soit ce que vous cherchez, mais vous pouvez construire votre propre streamer côté serveur, jetez un oeil à IPipeByte. C'est une interface qui existe depuis win2k, et qui vous permettra de streamer facilement des octets entre le client et le serveur. Puisque vous effectuerez la lecture réelle à partir du fichier, les problèmes d'autorisation seront uniquement ceux que le système d'exploitation vous impose. Et, bien sûr, le format de texte ne sera pas un problème du tout.

Il y a un bon article sur l'utilisation des tuyaux, que vous pouvez trouver here. L'exemple de code est manquant, mais il peut probablement être trouvé dans MSDN hors connexion.

+0

Je vais y jeter un coup d'oeil, merci. Idéalement, j'utiliserais un objet ou un composant préexistant, mais si je dois lancer le mien, cela pourrait être très utile. –

+0

Cela fait un moment que j'ai utilisé des pipes, mais IIRC l'exemple de code est tout à fait prêt à être utilisé tel quel, et en le modifiant pour répondre à vos besoins devrait être assez facile. La plomberie du tuyau est terminée, ce qui ne laisse que la manipulation des fichiers. – eran

+0

Je n'ai pas fini d'utiliser des tuyaux, mais j'ai essayé d'auto-enrouler un objet stream et de l'exposer via DCom pour faire ce dont j'avais besoin. Je n'ai pas eu de chance de localiser une implémentation de flux accessible à distance «officielle» qui fonctionnait également avec des fichiers verrouillés en écriture ET unicode ou UTF-8. –

Questions connexes