File. OpenAsTextStream Method Standardvärdet är 0 eller ASCII (TristateFalse). Scripting Runtime typ bibliotek definierar konstanter av tristaträkningen som kan användas istället för deras numeriska ekvivalenter för Unicode-argumentet. Du kan använda dem i dina skript på något av två sätt. Du kan definiera konstanterna själv genom att lägga till följande kod i ditt skript: Du kan också inkludera ASP METADATA-taggen i global. asa eller inkludera följande rad i en Windows Script Host (.wsf) - fil för att komma åt konstanterna från Scripting Runtime typ bibliotek: Om en annan process har öppnat filen, misslyckas metoden med ett tillstånd som inte godkänts. TextStream-objektet heter så mycket bra: det är utformat för att fungera med textfiler i stället för binära filer. Även om det är möjligt att använda OpenAs TextStream-metoden för att öppna en binär fil, kan ett enormt antal subtila fel uppstå när man manipulerar binär data som text. På grund av detta, om du vill arbeta med binära filer, bör du använda någon teknik (som ADO binär filobjekt) eller programmeringsspråk (som CC) som är mer mottagligt för behandling av binära filer. FileSystemObject. OpenTextFile Metod. TextStream Objektfilsystem Objektmodellbibliotek till referens Microsoft Scripting Runtime (SCRRUN. DLL) Beskrivning FileSystemObject är en välsignelse för alla utvecklare som använder en mängd olika Visual Basic (VBScript, VBA och VB). Det förenklar uppgiften att hantera vilken typ av filingång och - utmatning som helst för hantering av systemfilstrukturen själv. I stället för att använda komplexa samtal till Win32 API (eller, om VBScript inte har tillgång till filsystemet helt och hållet), tillåter det här objektet att utvecklaren enkelt hanterar filer och navigerar underliggande katalogstrukturer. Detta är särskilt användbart för de utvecklare eller administratörer som skapar skript som används för systemadministration eller underhåll. Objektmodellen File System är tillgänglig för både VB - och VBA-utvecklare, men det är endast en del av VBScripts skriptspråk. Objektmodellen File System gör att du kan förhöra, skapa, ta bort och manipulera mappar och textfiler. För att komma åt objektmodellen File System måste du först skapa en förekomst av filen FileSystemObject, det enda externt skapbara objektet i modellen. Därifrån kan du navigera genom objektmodellen, som visas i objekthierarki-diagrammet i Figur 10-1. Objektet FileSystemObject kan ordnas med ett kodfragment som följande: Figur 10-1. Objektmodellen för filsystem Det kan också ordnas med hjälp av objektets skapelsesmetod för värdobjektmodellen. File Object, File Collection Object, FileSystemObject Object, Mappobjekt, Mappers samlingsobjekt, TextStream Object Microsoft PowerShell, VBScript JScript Bible (Wiley)) Microsoft WSH och VBScript Programmering för den absoluta nybörjarenHur att öppna en binär fil och söka en cool du Det du kan se är att det är vettigt att de gjorde det med VBScript. Med VB förväntar alla sig tolkat läge för att vara långsam, och eftersom kommentarer skickas från kompilerade appar, kommer det inte att störas genom att parsa dem med implementerad körhastighet. Med VBScript, om de tillåter denna användning, varje gång en rad kommenterade skript analyseras måste kompilatorn antingen kontrollera karaktären för linjen (och efterföljande rader) för fortsättningar följt av logik för att testa för giltig användning, eller det skulle behöva gå hela vägen till slutet av linjen och sedan backtrack genom whitespace för en fortsättning. Om det inte behövde göra det och speciellt om det indexerade linjemålningar som manuset laddas, (trots allt läser det hela saken innan kompilering startar) då kan du bara whack allt från början av kommentaren till slutet av raden och görs med det i en enda operation - i stället för var som helst från 5 till 80 operationer. gt LOL - Jag har nyligen blivit biten av att glömma det här. Id kommenterade gt ut den första raden (av en 4-linjär) och visste inte att resterande 3 gt var det som gjorde mitt skript kasta bisarra fel tills jag öppnade gt-scriptet i en redaktör som visar vad linjenummer är. gt gt blir mer kvittare än det Du kan till exempel sticka något i gt gt en kommentar - VBScript släpper bara allt från kommentaren till gt gt slutet av raden, INKLUSIVE, som i andra sammanhang (och i VB6 gt gt kommentarer) tolkas som en linje fortsättning . Ons, 01 Jun 2005 13:22:57 GMT Paul Randal 17 23 Hur öppnar du en binär fil och söker gt gt Hej, Alex gt gt Ive spelade lite med Microsoft. XMLDOM för att skapa UTF-8 unicode (åtminstone gt det är vad jag trodde det var), men det gör inte vad gt gt jag ville ha för saker som chr (0). Faktum är att chr (0) slags dödade hela gt-barnelementet. Det måste finnas något strömliknande objekt gt gt som automatiskt omvandlar enskilda byte tecken till dubbla byte tecken. gt Då splittringen till array skulle vara en snap. gt gt En annan fråga: gt gt Är alla tecken i VBScripts i intervallet Chr (0) till Chr (127) gt ganska nära, om du menar faktiska tolkade tecken. gt Tolkade tecken måste vara i det området - till exempel identifieringsnamn gt kan beskrivas med följande regex: gt a-zA-ZA-ZA-Z0-9 Hej, Alex Om det totala antalet möjliga tecken var 128 eller mindre , Hoppades jag kunna använda kod så här för att hitta en charset som kan delas snyggt när du läser tillbaka med FSO ReadAll: Ange xmldoc CreateObject (quotMicrosoft. XMLDOMquot) Ange pi xmldoc. createProcessingInstruction (quotxmlquot, quot version1.0 encodingiso -8859-1quot) Ange pi xmldoc. createProcessingInstruction (quotxmlquot, quot version1.0 encodingutf-7quot) Ange pi xmldoc. createProcessingInstruction (quotxmlquot, quot version1.0 encodingunicodequot) xmldoc. appendChild (pi) strTemp quotquot för i 128 till 255 strTemp strTemp amp ChrW (i) next Ange e xmldoc. createElement (quottestquot) e. text strTemp xmldoc. appendChild (e) xmldoc. save (quotfoo. xmlquot) Jag antar att jag inte förstår ditt problem fullt ut. Hur ofta måste du konvertera fram och tillbaka mellan sträng - eller filformat och arrayformat Och hur stora är dessa bitar förstår jag att endast litteratursträngar och kommentarer kan ligga utanför 128-raden? Skulle det vara möjligt med ett tidigt pass hitta alla strängar och kommentarer, ersätt dem med en viss unik sekvens av byte inom 128-raden och parkera dem någonstans tills din bearbetning är klar, och sedan i slutet av bearbetningen, sätt tillbaka dem till sin ursprungliga position. känner till en drag och släpp hexasciichar file viewer Just nu är det en smärta att räkna ut exakt vad foo. xml innehåller med varje sak jag försöker. Thu, 02 Jun 2005 01:37:07 GMT Hur man öppnar en binär fil och söker OK, jag fick resultat som brukade indikera det också. Jag var under intrycket att Mid () - funktionen var tvungen att göra en komplett kopia av strängen med varje samtal, vilket var anledningen till att jag förväntade mig att göra något via ADO kan vara snabbare. - Vänligen svara i nyhetsgruppen så att alla kan dra nytta av det. dev. remotenetworktechnology ---------- Prenumerera på Microsofts säkerhetsbulletiner: microsofttechnetsecuritybulletinnotify. asp gt Hey hej, du heter Paul) gt. Jag hoppades att någonstans i ADO: s morass var det ett sätt att gt gt säg att citera denna filquot och sedan automatiskt ändra den till en gt gt teckenuppsättning. Jag antar att för filer under 100 K eller så, läser en gt gt per-character FSO fortfarande det snabbaste sättet att få resultatet gt Nej, 100K-samtal till läsmetoden är ganska långsam. Bättre till en stor läs gt (inte readall) baserat på filstorlek i en strängvariabel och extrahera gt-tecken i matrisen med funktionen mid (). gt Här är ett lite referensexempel. Kvittotxt. txtquot i mitt test var en gt 100.000 tecken ascii textfil. gt på en PIII 500mhz w 256mb ram), var mitten () tekniken konsekvent 4-5 gt gånger snabbare än tekniken med en teckenläsning. gt set fso skapaobjekt (quotscripting. filesystemobjectquot) gt set fil fso. getfile (quotjxtxt. txtquot) gt set ts file. openastextstream gt text ts. read (file. size-1) gt ts. close gt redim arChars (len (text) -1) gt for i 0 till ubound (arChars) gt arChars (i) mitten (text, 1,1) gt next gt text tom gt e1 timer () - t1 gt msgbox formatnummer (e1,5) gt set ts-fil. openestxtstream gt erase arChars gt t2 timer () gt redim arChars (file. size-1) gt för i 0 till ubound (arChars) gt arChars (i) ts. read (1) gt nästa gt ts. close gt e2 timer - t2 gt msgbox formatnummer (e2,5) gt - gt Michael Harris gt Microsoft. MVP. Scripting gt Seattle WA US Så här öppnar du en binär fil och söker Tack för informationen, Michael jag ser 3 och 6, men jag är fortfarande disbelieving. Jag har skrivit några skript för att visa vad jag tror att jag ser, men har inte kunnat komma med kortfattad kod som konsekvent visar odditeterna som jag har sett. Jag är redo att ta tillbaka allt jag sa om FSOs är bra att läsa och skriva binära filer. gt gt En annan fråga: gt gt Är alla tecken i VBScriptsna i intervallet Chr (0) till Chr (127) gt Internt är alla strängar Unicode. Detta gäller både VBScript och gt JScript. gt Jämför Len (quotabcquot) med LenB (quotabcquot). Den förra returnerar antalet gt-tecken i strängen och det senare antalet byte i strängen. gt Det finns alltid dubbelt så många byte som tecken eftersom internt är alla gt-skript strängar Unicode. gt Så en sträng kan innehålla Unicode-tecken som endast finns i ascii-området, gt extended ascii (ansi) eller något annat Unicode-sortiment, beroende på källan till gt-strängen. gt Det finns xxxB - och xxxW-variationer för funktionerna Chr () och Asc () för att hantera gt explicit med 2 byte (breda) tecken. Det finns också xxxB-variationer av gt Len () och Mid () för att hantera explicithet med byte. gt - gt Michael Harris gt Microsoft. MVP. Scripting gt Seattle WA USASP OpenAsTextStream Metod Valfritt. Så här öppnar du filen. 1 ForReading - Öppna en fil för läsning. Du kan inte skriva till den här filen 2 ForWriting - Öppna en fil för att skriva 8 ForAppending - Öppna en fil och skriv till slutet av filen Valfri. Formatet på filen. 0 TristateFalse - Standard. Öppna filen som ASCII -1 TristateTrue - Öppna filen som Unicode -2 TristateUseDefault - Öppna filen med systemstandarden lt dim fs, f, ts ställa in fsServer. CreateObject (Scripting. FileSystemObject) Ställ in ffs. GetFile (c: test. txt) Ställ tsf. OpenAsTextStream (ForWriting) ts. Write (Hello World) ts. Close Set tsf. OpenAsTextStream (ForReading) Response. Write (ts. ReadAll) ts. Close set tsnothing set fnothing set fsnothing gtgt Jag hittar inget sätt att öppna en binär fil i VBScript. gt Det finns quotOpenTextFilequot och quotOpenAsTextStreamquot metoder i gt quotScripting. FileSystemObjectquot-objektet, men jag kan inte se någon gt quotOpenBinaryFilequot eller motsvarande. Ett möjligt sätt är att öppna den som Unicode (valfritt argument i OpenAsTextStream-metoden) och sedan läsa tecken med B-strängfunktionerna, men det är riskabelt minst sagt. Det finns inget tillförlitligt sätt att göra med FileSystemObject - du kan säkert hitta verktyg från tredje part för att göra det här. Prova cwashingtonreach för att börja med (även om jag inte vet säkert om det finns något där). - Peter J. Torr - Microsoft Windows Script Program Manager Vänligen skicka inte mig mej med frågor - lägg dem till den här nyhetsgruppen istället. Tack Mån, 25 Mar 2002 03:00:00 GMT Antonin Folle 3 4 Öppna en binär fil Du kan använda någon tredje parykkomponent för att göra det. Se ScriptUtilities, pstruh. czhelpScptUtllibrary. htm. gt Jag finner inte något sätt att öppna en binär fil i VBScript. gt Det finns quotOpenTextFilequot och quotOpenAsTextStreamquot metoder i gt quotScripting. FileSystemObjectquot-objektet, men jag kan inte se någon gt quotOpenBinaryFilequot eller motsvarande. gt Finns det ett sätt att öppna en binär fil Jag saknar någon metod gt Tack i förväg, gt Jerome. gt --- gt Jerome Siour
No comments:
Post a Comment