Método File. OpenAsTextStream O valor padrão é 0 ou ASCII (TristateFalse). A biblioteca de tipo de tempo de execução de scripts define constantes da enumeração Tristate que podem ser usadas no lugar de seus equivalentes numéricos para o argumento Unicode. Você pode usá-los em seus scripts de duas formas. Você pode definir as constantes você mesmo, adicionando o seguinte código ao seu script: Você também pode incluir a tag ASP METADATA em global. asa ou incluir a seguinte linha em um arquivo do Windows Script Host (.wsf) para acessar as constantes do Biblioteca de tipos de tempo de execução de scripts: se outro processo abriu o arquivo, o método falhará com um erro de Permissão negada. O objeto TextStream é assim chamado por uma razão muito boa: ele foi projetado para trabalhar com arquivos de texto em vez de arquivos binários. Embora seja possível usar o método OpenAs TextStream para abrir um arquivo binário, um enorme número de erros sutis pode aparecer quando você manipula dados binários como texto. Por isso, se você quiser trabalhar com arquivos binários, você deve usar alguma tecnologia (como o objeto de arquivo binário ADO) ou a linguagem de programação (como CC) que é mais acessível ao processamento de arquivos binários. FileSystemObject. OpenTextFile Method. TextStream Object File System Object Model Library to Reference Microsoft Scripting Runtime (SCRRUN. DLL) Descrição O FileSystemObject é uma benção para todos os desenvolvedores usando qualquer variedade de Visual Basic (VBScript, VBA e VB). Ele simplifica a tarefa de lidar com qualquer tipo de entrada e saída de arquivos e para lidar com a própria estrutura de arquivos do sistema. Ao invés de recorrer a chamadas complexas para a API Win32 (ou, no caso do VBScript, não poder acessar o sistema de arquivos completamente), esse objeto permite que o desenvolvedor manipule facilmente arquivos e navegue pelas estruturas de diretórios subjacentes. Isso é especialmente útil para os desenvolvedores ou administradores que estão criando scripts que são usados para administração ou manutenção do sistema. O modelo de objeto do Sistema de Arquivos está disponível para os desenvolvedores do VB e VBA, mas é intrinsecamente parte da linguagem de script VBScript. O modelo de objeto File System permite interrogar, criar, excluir e manipular pastas e arquivos de texto. Para acessar o modelo de objeto do Sistema de Arquivos, você deve primeiro criar uma instância do objeto FileSystemObject, o único objeto externamente criável no modelo. A partir daí, você pode navegar pelo modelo de objeto, conforme mostrado no diagrama de hierarquia de objetos na Figura 10-1. O objeto FileSystemObject pode ser instanciado com um fragmento de código como o seguinte: Figura 10-1. O modelo de objeto do Sistema de arquivos Também pode ser instanciado usando o método de criação do objeto do modelo do objeto host. Objeto de arquivo, Objeto de coleção de arquivos, objeto FileSystemObject, objeto de pasta, Objeto de coleção de pastas, Objeto TextStream Microsoft PowerShell, VBScript JScript Bible (Bíblia (Wiley)) Microsoft WSH e VBScript Programming for the Absolute BeginnerComo abrir um arquivo binário e procurar One cool you A coisa que você pode ver é que faz sentido que eles fizeram isso com o VBScript. Com a VB, todo mundo espera que o modo interpretado seja lento, e como os comentários são tirados de aplicativos compilados, analisar eles não incomodará a velocidade de execução implantada. Com o VBScript, se eles permitissem esse uso, cada vez que uma linha de script comentado é analisada, o compilador precisaria verificar caracteres por caractere através da linha (e linhas sucessivas) para continuações, seguido de lógica para testar o uso válido, Ou teria que ir todo o caminho até o final da linha e, em seguida, voltar para o espaço em branco para uma continuação. Se não precisava fazer isso e especialmente se indexasse os terminais de linha à medida que o script é carregado (afinal, ele lê o todo antes que a compilação seja iniciada), então você pode simplesmente ignorar tudo desde o início do comentário até o final da linha E seja feito com ele em apenas uma operação - em vez de qualquer lugar de 5 a 80 operações. Gt LOL - Eu fui recentemente mordido ao esquecer esse quirk Id, comentou a primeira linha (de um 4-liner) e não sabia que os 3 gt restantes eram o que estava fazendo meu script lançar erros bizarros até eu abrir o script gt Em um editor que mostra quais são os números de linha. Gt gt É mais complicado além disso. Por exemplo, você pode colar qualquer coisa em gt gt um comentário - o VBScript simplesmente deixa tudo do comentário para o final da linha gt gt, INCLUINDO o que, em outros contextos (e nos comentários VB6 gt gt), é interpretado como uma continuação de linha . Qua, 01 de junho de 2005 13:22:57 GMT Paul Randal 17 23 Como abrir um arquivo binário e procurar gt gt Oi, Alex gt gt Eu joguei um pouco com o Microsoft. XMLDOM para criar UTF-8 unicode (pelo menos gt que é O que eu pensei que era), mas não faz o que gt gt queria para coisas como chr (0). Na verdade, o tipo chr (0) matou o elemento infantil gt inteiro. Deve haver algum objeto de fluxo gt gt que converta automaticamente caracteres de um byte para caracteres de byte duplo. Gt Então a divisão na matriz seria um instante. Gt gt Outra questão: gt gt São todos os caracteres dos VBScripts no intervalo Chr (0) para Chr (127) gt Muito próximo, se você quer dizer caracteres reais interpretados. Gt Os caracteres interpretados devem estar nesse intervalo - por exemplo, os nomes dos identificadores gt podem ser descritos pela seguinte regex: gt a-zA-Za-zA-Z0-9 Oi, Alex Se o número total de caracteres possíveis fosse 128 ou menos , Eu estava esperando poder usar um código como esse para encontrar um charset que poderia ser dividido de forma agradável quando lido novamente com FSO ReadAll: Set xmldoc CreateObject (quotMicrosoft. XMLDOMquot) Defina pi xmldoc. createProcessingInstruction (quotxmlquot, quot version1.0 encodingiso -8859-1quot) Definir pi xmldoc. createProcessingInstruction (quotxmlquot, quot version1.0 encodingutf-7quot) Definir pi xmldoc. createProcessingInstruction (quotxmlquot, quot version1.0 encodingunicodequot) xmldoc. appendChild (pi) strTemp quotquot for i 128 to 255 strTemp strTemp Amp ChrW (i) Próximo Set e xmldoc. createElement (quottestquot) e. text strTemp xmldoc. appendChild (e) xmldoc. save (quotfoo. xmlquot) Eu acho que não estou entendendo completamente o seu problema. Com que frequência você precisa converter para trás e para a frente entre o formato de seqüência de caracteres ou arquivo e o formato da matriz. Quão grande são esses pedaços? Eu entendo corretamente que somente as cordas e comentários podem ser fora do intervalo de 128 caracteres. Seria possível em uma passagem adiantada Encontre todas as cordas e comentários de lixo, substitua-os por uma sequência única de bytes dentro da faixa de 128 caracteres, e estacione-os em algum lugar até o seu processamento e, no final do processamento, substitua-os novamente na sua posição original. Você Conheça um visualizador de arquivos de arrasto e solto no hexasciichar Agora mesmo é uma dor descobrir exatamente o que foo. xml contém com cada coisa que eu tento. Thu, 02 Jun 2005 01:37:07 GMT Como abrir um arquivo binário e procurar OK, eu estava obtendo resultados que também indicavam isso. Eu tinha a impressão de que a função Mid () precisava fazer uma cópia completa da string com cada chamada, e é por isso que eu esperava que fazer algo através do ADO pudesse ser mais rápido. - Por favor, responda no grupo de notícias para que todos possam se beneficiar. Dev. remotenetworktechnology ---------- Subscrever a Microsofts Security Bulletins: microsofttechnetsecuritybulletinnotify. asp gt gt Ei, é o seu nome Paul) gt gt Eu estava esperando que em algum lugar no morass do ADO existisse uma maneira de gt gt Diga limpa quotget este filequot e, em seguida, automagically transformá-lo em uma matriz gt gt caracteres. Presumo que, para arquivos com menos de 100 K, um gt gt por personagem FSO lido ainda é a maneira mais rápida de obter o resultado gt No, as chamadas de 100K para o método de leitura são bastante lentas. Melhor para um grande gt de leitura (não readall) com base no tamanho do arquivo em uma variável de string e extrair caracteres gt na matriz usando a função mid (). Por exemplo, um exemplo de referência. O quotjunktxt. txtquot no meu teste foi um arquivo de texto ascii gt 100,000 person. Gt Em um PIII 500mhz w 256mb ram), a técnica mid () foi consistentemente 4-5 gt vezes mais rápida do que a técnica de leitura de um caractere. Gt set fso createobject (quotscripting. filesystemobjectquot) gt set file fso. getfile (quotjunktxt. txtquot) gt set ts file. openastextstream gt text ts. read (file. size-1) gt ts. close gt redim arChars (len (texto) -1) gt para i 0 para ubound (arChars) gt arChars (i) mid (texto, 1,1) gt próximo gt texto vazio gt e1 timer () - t1 gt msgbox formatnumber (e1,5) gt set ts file. Openastextstream gt apagar arChars gt t2 timer () gt redim arChars (file. size-1) gt para i 0 para ubound (arChars) gt arChars (i) ts. read (1) gt próximo gt ts. close gt e2 timer () - t2 gt msgbox formatnumber (e2,5) gt - gt Michael Harris gt Microsoft. MVP. Scripting gt Seattle WA EUA Como abrir um arquivo binário e procurar Obrigado pela informação, Michael eu vejo os 3 e 6, mas eu ainda Incrédulo. Estive escrevendo alguns scripts para demonstrar o que penso que estou vendo, mas não conseguiu chegar a um código conciso que mostra consistentemente as estranhezas que vi. Estou pronto para recuperar tudo o que eu disse sobre os FSOs que são bons para ler e escrever arquivos binários. Gt gt Outra pergunta: gt gt São todos os caracteres dos VBScripts no intervalo Chr (0) para Chr (127) gt Internamente, todas as strings são Unicode. Isso é verdade tanto para o VBScript quanto para o gt JScript. Gt Compare Len (quotabcquot) com LenB (quotabcquot). O primeiro retorna o número de caracteres gt na string e o último o número de bytes na cadeia. Gt Há sempre o dobro de bytes como caracteres, pois internamente todas as seqüências de script gt são Unicode. Gt Então, uma string pode conter caracteres Unicode que estão apenas na faixa ascii, gt extended ascii (ansi) ou qualquer outro intervalo Unicode, dependendo da fonte de gt a string. Gt Existem variações xxxB e xxxW para as funções Chr () e Asc () para lidar com gt explicitamente com caracteres de 2 bytes (largos). Também há variações de xxxB de gt Len () e Mid () para lidar explicitamente com bytes. Gt - gt Michael Harris gt Microsoft. MVP. Scripting gt Seattle WA USASP Método OpenAsTextStream Opcional. Como abrir o arquivo. 1 ForReading - Abra um arquivo para leitura. Você não pode escrever neste arquivo 2 ForWriting - Abra um arquivo para escrever 8 ForAppending - Abra um arquivo e escreva para o final do arquivo Opcional. O formato do arquivo. 0 TristateFalse - Padrão. Abra o arquivo como ASCII -1 TristateTrue - Abra o arquivo como Unicode -2 TristateUseDefault - Abra o arquivo usando o sistema padrão lt dim fs, f, ts set fsServer. CreateObject (Scripting. FileSystemObject) Defina ffs. GetFile (c: test. Txt) Definir tsf. OpenAsTextStream (ForWriting) ts. Write (Hello World) ts. Close Definir tsf. OpenAsTextStream (ForReading) Response. Write (ts. ReadAll) ts. Close set set set set set fnnothing gtgt Eu não acho nenhuma maneira de Abra um arquivo binário no VBScript. Gt Existem métodos quotOpenTextFilequot e quotOpenAsTextStreamquot em gt o objeto quotScripting. FileSystemObjectquot, mas não consigo ver gt quotOpenBinaryFilequot ou equivalente. Uma maneira possível é abri-lo como Unicode (argumento opcional no método OpenAsTextStream) e depois ler caracteres com as funções de string B, mas isso é arriscado dizer o mínimo. Não há nenhuma maneira confiável de fazer isso com o FileSystemObject - você provavelmente pode encontrar ferramentas de terceiros para fazer isso. Tente cwashingtonreach para começar (embora eu não saiba com certeza se houver algo lá). - Peter J. Torr - Microsoft Windows Script Program Manager Por favor, não me envie um e-mail com perguntas - publique-os neste grupo de notícias. Thank you Seg, 25 Mar 2002 03:00:00 GMT Antonin Folle 3 4 Abra um arquivo binário Você pode usar um componente de terceiros para fazer isso. Veja ScriptUtilities, pstruh. czhelpScptUtllibrary. htm. Gt Não encontro nenhuma maneira de abrir um arquivo binário no VBScript. Gt Existem métodos quotOpenTextFilequot e quotOpenAsTextStreamquot em gt o objeto quotScripting. FileSystemObjectquot, mas não consigo ver gt quotOpenBinaryFilequot ou equivalente. Gt Existe uma maneira de abrir um arquivo binário Eu sinto falta de qualquer método gt Agradecemos antecipadamente, gt Jerome. Gt --- gt Jerome Siour
No comments:
Post a Comment