*<Llamada>

lfile= GETFILE('*.*')

*lcFile=TextFromWord(lfile, ,.T.,.T.)

PUBLIC ARRAY gaParag(1)

nRow=TextFromWord(lfile, ,.T.,.F.)


WAIT WINDOW "Escribiendo archivo..." AT 12,15 nowait

DIMENSION aFact [1][1]

lFact = .T.
iFact = 1
jFact = 3


iRow=0

DO while iRow<nRow
	
	cNombre = gaParag[iRow+1] 
	cCodigo = gaParag[iRow+2] 
	cRuc    = gaParag[iRow+3] 
	cNumFac = SUBSTR(gaParag[iRow+4],8) 
	cDirec  = gaParag[iRow+5] 
	cPlaca  = gaParag[iRow+6]
	cCiudad = gaParag[iRow+7] 
	codVend = gaParag[iRow+9]
	cVend   = gaParag[iRow+10]
	dFecha  = DTOC(gaParag[iRow+11])

	IF aParag[iRow+16]='CONTADO'
		iRow = iRow + 19
	ELSE
		iRow = iRow + 18
	ENDIF
	
	IF (iRow+1)>nRow
		EXIT 
	ENDIF
	
	lSeguir = .T.
	DO while lSeguir
		IF (gaParag[iRow+5]="001 - N")
			lSeguir = .F.
		ELSE
		
			IF gaParag[iRow+5] = '-'
				nCant = VAL(gaParag[iRow+1])
				cItem = gaParag[iRow+2] 
				nUC   = VAL(SUBSTR(gaParag[iRow+3],5))
				nC    = gaParag[iRow+4] 
				nU    = gaParag[iRow+6] 
				nPvp  = gaParag[iRow+7] 
				nDesc = gaPanrag[iRow+9] 
				iRow = iRow + 9
			ELSE
				nSuman = gaParag[iRow+2] 
				nDesc  = gaParag[iRow+3] 
				nS0    = gaParag[iRow+4] 
				nSX    = gaParag[iRow+5] 
				nIva   = gaParag[iRow+6] 
				nTotal = gaParag[iRow+7] 
				iRow   = iRow + 7
			ENDIF
		ENDIF
		
		
		IF (iRow+1)>nRow
			lSeguir = .F.
		ENDIF		
	ENDDO 
	
ENDDO 

WAIT clear
 
*RETURN xcFileDest


*STRTOFILE(lcFile,'\temp\word.txt')

*SELECT MiTabla
*REPLACE MICAMPO_memo with FILETOSTR(lcFile)
*</Llamada>
 

***************************************************
PROCEDURE TextFromWord
LPARAMETERS xcDocument,xcFileDest,xlQuitblank,xlAddSpace
***************************************************
* Nombre Original: PROCEDURE Extrae_texto_word
***************************************************
* PUblicada por ARiel en Comunidad
* Adaptada por Fidel.
*********************************
* xcDocument: Ruta y nombre de archivo (puede omitirse)
* xcFileDest: Ruta y nombre de un archivo de salida (Puede omitirse)
* xlQuitBlank: Quitar espacios en blanco Alltrim()
* xlAddSpace:  Agrega una linea en blanco entre parágrafos.
********************************************************************
* LPARAMETERS xcDocument,xcFileDest,xlQuitblank,xlAddSpace
*********************************************************************
 
LOCAL lnAsc,lcObten,i,j,lcChar,llAdd,WordApp,oWord,nfop
LOCAL ARRAY gaimp(33)
gaImp[1]=153
gaImp[2]=161
gaImp[3]=166
gaImp[4]=169
gaImp[5]=171
gaImp[6]=174
gaImp[7]=187
gaImp[8]=188
gaImp[9]=189
gaImp[10]=190
gaImp[11]=191
gaImp[12]=193
gaImp[13]=196
gaImp[14]=201
gaImp[15]=203
gaImp[16]=205
gaImp[17]=207
gaImp[18]=209
gaImp[19]=211
gaImp[20]=214
gaImp[21]=218
gaImp[22]=220
gaImp[23]=225
gaImp[24]=228
gaImp[25]=233
gaImp[26]=235
gaImp[27]=237
gaImp[28]=239
gaImp[29]=241
gaImp[30]=243
gaImp[31]=246
gaImp[32]=250
gaImp[33]=252
 
 
IF EMPTY(xcDocument)
	xcDocument= GETFILE('DOC')
ENDIF
IF EMPTY(xcDocument)
	RETURN ""
ENDIF
 
WordApp = CREATEOBJECT("word.application")
IF VARTYPE(WordApp)#"O"
	RETURN
ENDIF
WAIT WINDOW "Abriendo "+JUSTFNAME(xcDocument)+"..." AT 12,15 nowait
 
WordDoc = WordApp.Documents.Open(xcDocument)
WordDoc.Select
oWord=WordApp.ActiveDocument
 
nParagraph=oWord.paragraphs.count
lcDe="/"+TRANSFORM(nParagraph)
LOCAL ARRAY gaChar(1),gaColec(1)

DIMENSION gaParag(nParagraph)


 
FOR i=1 TO nParagraph
	WAIT WINDOW "Importando parágrafo "+TRANSFORM(i)+lcDe+"..." AT 12,15 nowait
	lcTexto=oWord.Paragraphs(i).Range.text
 
	lcObten=""
	FOR j=1 TO LEN(lcTexto)
		lcChar=SUBSTR(lcTexto,j,1)
		lnASc=ASC(lcChar)
		llAdd=.T.
		DO case
 
			CASE BETWEEN(lnAsc,32,126)
 
 
			CASE ASCAN(gaImp,lnAsc)#0
 
			OTHERWISE
 
				llAdd=.F.
		ENDCASE
		IF llAdd
			LcObten=lcObten+lcChar
		ENDIF
 
 
 
	NEXT
 
	gaParag[i]=IIF(xlQuitBlank,ALLTRIM(lcObten),lcObTen)
NEXT
WAIT WINDOW "Cerrando Microsoft Word ®..." AT 12,15 nowait
WordDoc.Close()
WordDoc = null
WordApp.QUIT
WordApp = null


RETURN nParagraph
ENDPROC