11. august 2005 - 09:59Der er
8 kommentarer og 1 løsning
BinaryReader/Writer problem
Jeg skal indlæse et helt office-dokument (Word, Excel, PP..), finde og ændre et par tegn, og skrive det hele ud i dokumentet igen. Jeg har ikke mulighed for at bruge interop, da det skal køre på en server, hvor der ikke ligger nogen form for Office på.
Lige nu leger jeg med BinaryReader og Binary Writer således:
FileStream fh = File.Open(fileLocation,FileMode.Open); int length = Convert.ToInt16(fh.Length);
BinaryReader binReader = new BinaryReader(fh); char[] testchar = new char[length];
try { for (int i = 0; i < length; i++) testchar[i] = binReader.ReadChar(); } catch (Exception e) { Console.WriteLine(e.Message); } fh.Close();
//Udskifter enkelte tegn, indsætter ikke ekstra tegn, udskifter kun eksisterende.
fh = File.Open(fileLocation,FileMode.Open); BinaryWriter binWriter = new BinaryWriter(fh); binWriter.Write(testchar);
Men når jeg så vil åbne mit dokument igen er det korrupt.
Husk at Flush() og Close() dit dokument igen. Dog tror jeg ikke at du kan ændre i worddokumenter på den måde, medmindre du kender formatet det bliver gemt i (..det er en lukket standard)
Der må være en måde, hvorved man kan få lov til at ændre lidt tekst i et office-dokument.
Jeg har et Python-script liggende, hvor der bare laves en f.read() på dokumentet, og lidt senere en f.write(), og det virker fint. Så tænkte jeg, at det måtte være muligt med binary-reader/writer.
Hele programmet skal lige igennem en optimering, og pudses af, så den passer med afdelingens code/design-guidelines.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.