convertir archivo .rtf a .txt desde VFP9
Publicado por omar (23 intervenciones) el 19/07/2020 01:11:05
Hola buenas noches a todos los miembros del foro.
antes de hacer cualquier pregunta quisiera agradecer todo el aporte que ha hecho este foro por mi. gracias a ello crecí mucho en el aprendizaje el lo relacionado a vfp.
Bien, les comento tengo una aplicación que me convierte un archivo .RTF a .TXT, funciona bien, pero la PC en el que trabajo lo actualizaron de Ofice 2010 a 2019, desde este momento cada conversión que haga me tarda entre 10 a 15 segundo ya no es instantánea como solía realizarlo. aqui les dejo la rutina que utilizo:
esta rutina lo tengo en un .PRG
y desde aquí lo ejecuto desde con command bottom [b]
SET DEFAULT TO D:\SIGAMM\prg
lcSourceFile = "c:\Temp_des\cuerpo.rtf"
lcTargetFile = "c:\Temp_sigamm\cuerpo.txt"
IF convert_rtf_to_text_by_MsWord(lcSourceFile , lcTargetFile)
ENDIF
cualquier ayuda que me puedan brindar lea agradecería
antes de hacer cualquier pregunta quisiera agradecer todo el aporte que ha hecho este foro por mi. gracias a ello crecí mucho en el aprendizaje el lo relacionado a vfp.
Bien, les comento tengo una aplicación que me convierte un archivo .RTF a .TXT, funciona bien, pero la PC en el que trabajo lo actualizaron de Ofice 2010 a 2019, desde este momento cada conversión que haga me tarda entre 10 a 15 segundo ya no es instantánea como solía realizarlo. aqui les dejo la rutina que utilizo:
esta rutina lo tengo en un .PRG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
PROCEDURE convert_rtf_to_text_by_MsWord
*------------------------------------------------------
* tcSourceFile: Archivo de texto (rtf, doc) a convertir
* tcTargetFile: Nombre del archivo de destino (txt)
* Si se omite será igual a tcSourceFile
* con la extensión txt
* No admite un archivo txt como tcSourceFile
* convert_rtf_to_text_by_MsWord devuelve .T. si encuentra el archivo convertido
* -----------------------------------------------------
LPARAMETERS tcSourceFile,tcTargetFile
TRY
LOCAL LOEX AS EXCEPTION,;
LCMESSAGE,;
lREsult,;
lcDocuments,;
loFso as Object,;
loWord as Object,;
oWsh as Object,;
loDoc as Object,;
LOFOCUS AS OBJECT,;
loWord_err as Exception
IF VARTYPE(m.tcTargetFile) # "C"
tcTargetFile = ""
ENDIF
oWsh = CREATEOBJECT("WScript.Shell")
lcDocuments = oWsh.SpecialFolders("MyDocuments")
owsh=null
loFso = NEWOBJECT("Scripting.FileSystemObject")
DO WHILE .t.
IF EMPTY(m.tcSourceFile)
EXIT
ENDIF
*WAIT "Convirtiendo " + m.tcSourceFile + " a txt..." WINDOW AT 20,20 NOWAIT
IF JUSTEXT(m.tcSourceFile) == "TXT"
lcMessage = "SourceFile no puede ser un formato txt"
EXIT
ENDIF
IF !loFso.FileExists(m.tcSourceFile)
lcMessage = m.tcSourceFile + " no existe"
EXIT
ENDIF
* Si no se pasó el nombre del archivo de destino
IF EMPTY(m.tcTargetFile)
tcTargetFile = ADDBS(JUSTPATH(m.tcSourceFile)) ;
+ JUSTSTEM(m.tcSourceFile)
ELSE
tcTargetFile = ADDBS(JUSTPATH(m.tcTargetFile));
+ JUSTSTEM(m.tcTargetFile)
ENDIF
TRY
loWord = NEWOBJECT("Word.Application")
CATCH TO loWord_err
ENDTRY
IF VARTYPE(loWord_err)="O"
lcMessage = "No se pudo instanciar Microsoft Word ® "
EXIT
ENDIF
loWord.Documents.Open(m.tcSourceFile)
loDoc = loWord.ActiveDocument
loDoc.SaveAs(m.tcTargetFile , 3)
loDoc.Close()
loWord.Quit()
IF EMPTY(JUSTPATH(m.tcTargetFile))
tcTargetFile = ADDBS(m.lcDocuments)+m.tcTargetFile
ENDIF
lResult = loFso.FileExists(FORCEEXT(m.tcTargetFile,".txt"))
EXIT
ENDDO
CATCH TO LOEX
LOEX.USERVALUE = PROGRAM()
* SHOWERROR(LOEX) && rutina que muestra el error
FINALLY
loFso = null
loDoc = null
loWord = null
WAIT CLEAR
IF !EMPTY(M.LCMESSAGE)
MESSAGEBOX(M.LCMESSAGE,0,PROGRAM())
ENDIF
ENDTRY
RETURN m.lResult
SET DEFAULT TO D:\SIGAMM
ENDPROC
y desde aquí lo ejecuto desde con command bottom [b]
SET DEFAULT TO D:\SIGAMM\prg
lcSourceFile = "c:\Temp_des\cuerpo.rtf"
lcTargetFile = "c:\Temp_sigamm\cuerpo.txt"
IF convert_rtf_to_text_by_MsWord(lcSourceFile , lcTargetFile)
ENDIF
cualquier ayuda que me puedan brindar lea agradecería
Valora esta pregunta


0