Newsgroup: it.comp.www.asp
Titolo: Come aprire un .doc con OpenTextFile

Ho la necessit` di estrarre con OpenTextFile (o sicuramente altro) il contenuto
di un file word per ricercare una qualsiasi parola. Ma riesco a leggere nei .txt
e .htm ma non nei .doc . Spero ci sia una soluzione e vi prego di rispondermi in
ogni caso. Grazie
--
Enjoy the .NET community! ASPItalia.com
 
http://forum.aspitalia.com/
 
http://www.aspitalia.com/

 e .htm ma non nei .doc . Spero ci sia una soluzione e vi prego di
rispondermi in
Prova con FSO (FileSystemObject) ti fa leggere nei .doc ed eventualmente
anche modificarli... anche se ci vuole una certa conoscenza dei .doc!
Ciao
--
Lino Mari [MOD it.economia.e-commerce]
sito di supporto al NG --> 
http://www.e-conomy.it
http://www.viadeimercanti.com
 - Il nuovo portale per chi fa e-commerce

 anche modificarli... anche se ci vuole una certa conoscenza dei .doc!
errore:
    i doc di cui parla stellaesposito sono documenti Word e non semplici
documenti di testo (hai mai provato ad aprirne uno con il notepad?) e non mi
risulta che FSO (OpenTextFile e' un metodo proprio di FSO) "conosca" il
modello a oggetti di Word.
Per fare questo tipo di operazione devi referenziare l'oggetto
"Word.Application" in ASP e usare il suo modello ad oggetti.
A meno che non ci siano componenti di terze parti, non c'e' altro sistema
(d'altronde se hai Word ti puoi installare la guida di VBA per Word con
l'instalazione custom)
Simone Medas.

 modello a oggetti di Word.
Proprio pochi giorni fa... insieme a Daniele abbiamo provato proprio questo
riuscendoci... tutto dipende da cosa scrivi all'intero del doc... e come...


Scusa la mia insistenza (o ignoranza) ma io utilizzo:
   Set FileObject=CreateObject("Scripting.FileSystemObject")
   Set InStream=FileObject.OpenTextFile(MyFile,1,true)
   rstesto=UCASE(InStream.ReadAll)
   InStream.Close 
   Set InStream=Nothing .
Ma come ti dicevo non riesco a leggere nei .doc. Forse sbaglio qualcosa o va omesso
OpenTextFile (in questo caso cosa devo utilizzare?). Ti ringrazio e spero in una
risposta.


Sarebbe troppo chiederti come? Io ho provato con
-----------
  Set FileObject=CreateObject("Scripting.FileSystemObject")
  Set InStream=FileObject.OpenTextFile(MyFile,1,true)
  rstesto=UCASE(InStream.ReadAll)
-----------
ma come vedi ho usato OpenTextFile. Cosa devo fare????
Poi avendo letto l'altra risposta ho cercato application.word (ma mi sono un po'
incasinata). Ti ringrazio.


Ho trovato qualcosa come
set wrd=CreateObject("Word.Application")
wrd.Documents.Open MyFile
Ma come faccio a inserire il testo in una viariabile o a leggerlo come un txt e
poi inserire il testo sempre in una variabile dove poter ricercare la mia frase???
Ti ringrazio


 ma come vedi ho usato OpenTextFile. Cosa devo fare????
prova con questo...
<%
 Set fso = CreateObject("Scripting.FileSystemObject")
 Set f = fso.OpenTextFile(Server.MapPath("documento.doc"), 1)
 Lar = f.ReadAll
 f.Close
 Set f = Nothing
 Lar = Replace(Lar, "[Nome]", Nome)
 Set f = fso.OpenTextFile(Server.MapPath("nuovodocumento.doc"), 2, True)
 f.Write Lar
 f.Close
 Set f = Nothing
 Set fso = Nothing
%>


 poi inserire il testo sempre in una variabile dove poter ricercare la mia
frase???
non so, a questo punto, che strada hai percorso (FSO o Word.Application).
Se hai percorso la strada di word (come documento word e non di testo) la
via migliore e' crearti, con word, un documento di template dove inserire il
testo fisso e inserire dei segnalibri dandogli un nome significativo.
Una volta che, in ASP, hai aperto il documento in questione (dopo le
procedure come da prassi) puoi cercare tutti i segnalibri (oppure uno in
particolare per nome) e inserirci il testo che ti serve. Vantaggi:
- Puoi dare all'intero documento la formattazione che preferisci senza
preoccuparti se e' testo fisso o dinamico.
- L'inserimento del testo a runtime (della pagina ASP) nei segnalibri non
comporta la perdita di quest'ultimo (in modo da poter farvi riferimento in
qualsiasi momento).
- E' gia' tutto pronto. Non ti devi reinventare delle procedure per fare
tutte queste operazioni. Si tratta solo di documentarsi a dovere (non e'
codi' difficile Word e la documentazione in linea di VBA e' corredata da
esempi).
Saluti
Simone Medas

 poi inserire il testo sempre in una variabile dove poter ricercare la mia
frase???
ti scrivo un mini modulo dove trovi un esempio sull'utilizzo dell'oggetto
Word.Application.
Non ho capito bene come vuoi utilizzare ildocumento Word con ASP.
Ho incluso, percio', nell'esempio diverse possibilita' di utilizzo:
    - inserimento di testo formattato nel documento word in punti
predeterminati
    - recupero di una selezione di testo proveniente dal documento
    - recupero di tutto il documento
    - salvataggio del documento con le modifiche con un nuovo nome.
In realta' questo sistema e' molto semplice, ma puo' essere utilizzato in
Visual Basic per sopperire alle "mancanze" di Microsoft per il reporting
avanzato.
Crea un documento word e inserisci il testo che vuoi con la formattazione
che vuoi e in posizioni casuali inserisci due segnalibri "id" e "name" (non
occorre che nel documento appaia del testo nella posizione del segnalibro)
(menu' inserisci/insert -> segnalibro/bookmark). Dai, nel docuento, una
formattazione speciale al segnalibro (ad esempio Italic e colore blu). Lo
scopo del segnalibro puo' essere quello di avere un documento Word diverso
in base a determinati dati (quindi va oltre l'utilizzo in ASP). Infine
inserisci la tua firma, selezionala e appica un segnalibro con nome "firma".
Lo scopo di questo segnalibro e' quello di restituire nella pagina ASP il
valore contenuto in quel segnalibro.
Il codice e' il seguente:
    Dim wrdApp
    Set wrdApp = Server.CreateObject("Word.Application")
    Dim wrdDoc
    Set wrdDoc = Server.CreateObject("Word.Document")
    Dim bkm
    Set bkm  = Server.CreateObject("Word.Bookmark")
    wrdApp.Visible = False
    ' apre il documento
    Set wrdDoc = wrdApp.Documents.Open("docToOpen.doc")
    ' esegue un ciclo per ogni segnalibro
    For Each bkm In wrdDoc.Bookmarks
        ' seleziona il bookmark
        bkm.Select
        ' in base al segnalibro esegui una diversa operazione
        Select Case bkm.Name
            Case "id"
                ' scrive l'id
                Selection.InsertBefore "12345"
            Case "name"
                ' scrive il nome
                Selection.InsertBefore "Paolo Rossi"
            Case "firma"
                'ottiene la firma
                Response.Write Selection.Text
        End Select
    Next
    ' seleziona l'intero documento (in plain text) e lo riporta nella pagina
restituita
    wrdDoc.Select
    Response.Write Selection.Text
    ' salva il documento modificato con nuovo nome
    wrdDoc.SaveAs "editedDocument.doc"
    ' chiude il documento e l'istanza alla appplicazione word
    wrdDoc.Close
    wrdApp.Quit
Simone Medas

Ciao. Riguardo all'argomento io avrei un altro problema. Il codice che avevo messo
era molto simile al tuo. Lo ho utilizzato in una componente sviluppata in VB
richiamata dalla pagina ASP. Il problema h che finchh usavo la pagina in locale
sul mio PC il tutto funzionava, non appena messa sul server ha smesso. Dopo aver
scoperto che bisognava dare permessi particolari a word installato sul server
mi capita che quando cerco di aprire un documento word con la semplice istruzione
open la pagina asp mi risponde:
Errore di run-time di Microsoft VBScript error '800a01fb' 
Si h verificata un'eccezione: 'Pubblica' 
dove pubblica h il nome della mia sub
Spero tu mi possa aiutare perchh non ce la facciio +, sono giorni che sono sull'errore
Messaggio spedito dal sito Risorse.net
La comunita' virtuale di Web masters e Web designers
http://www.risorse.net