Option Explicit
Sub LeerArchivo()
Dim oAA As Object
Dim sRuta As String
Dim oArchivo As Object
Dim oTexto As Object
Dim sContenido As String
Dim co1 As Long
'La ruta del archivo
sRuta = ConvertToUrl( "/home/mau/Desktop/archivo.txt" )
'Servicio para acceso a archivos
oAA = createUnoService("com.sun.star.ucb.SimpleFileAccess")
'Servicio para manipular archivos
oTexto = createUnoService("com.sun.star.io.TextInputStream")
'Verificamos que exista el archivo
If oAA.exists( sRuta ) Then
'Abrimos el archivo para lectura/escritura
oArchivo = oAA.openFileReadWrite( sRuta )
'El archivo puede ser más grande pero no cabe en una variable String
If oArchivo.getLength < 65535 Then
'Leemos el archivo de forma binaria
oTexto.setInputStream( oArchivo.getInputStream )
'Leemos el contenido completo como texto
sContenido = oTexto.readString( Array(""), True )
'Leemos cada 500 caracteres
For co1 = 1 To Len(sContenido) Step 500
'Cuidado, si tu archivo es muy grande este ciclo puede ser muy largo
'solo te lo muestro como ejemplo, aquí se supone manipularias el archivo
'a tus necesidades
MsgBox Mid( sContenido, co1, 500 )
Next
Else
MsgBox "Archivo demasiado grande"
End If
Else
MsgBox "No se encontro el archivo: " & ConvertFromUrl(sRuta)
End If
End Sub Sub EjemploAccesoAleatorio
Dim iNumero As Integer
Dim sTexto As Variant REM Debe ser una variante
Dim aArchivo As String
aArchivo = "/home/jj/prueba.txt"
iNumero = Freefile
Open aArchivo For Random As #iNumero Len=32
Seek #iNumero,1 REM Posición al principio
Put #iNumero,, "Esta es la primera línea de texto" REM Rellenar
línea con texto
Print #iNumero, "Esta es la segunda línea de texto"
Print #iNumero, "Esta es la tercera línea de texto"
Seek #iNumero,2
Get #iNumero,,sTexto
Print sTexto
Close #iNumero
iNumero = Freefile
Open aArchivo For Random As #iNumero Len=500
Get #iNumero,2,sTexto
Put #iNumero,,"Esto es un texto nuevo"
Get #iNumero,1,sTexto
Get #iNumero,2,sTexto
Put #iNumero,20,"Este es el texto del registro 20"
Print Lof(#iNumero)
Close #iNumero
end subdef LeerArchivo():
# Accedemos al modelo del documento actual
model = XSCRIPTCONTEXT.getDocument()
# Accedemos a la primer hoja del documento
hoja = model.getSheets().getByIndex(0)
sRuta = "/home/mau/Desktop/archivo.txt"
archivo = open( sRuta, "r" )
sContenido = archivo.read()
lineas = len(sContenido) / 500 + 1
co1 = 0
while co1 < lineas :
# Accedemos a la celda A1 de la hoja
celda = hoja.getCellByPosition( 0, co1)
sTmp = sContenido[co1*500:co1*500+500]
# Escribimos en la celda
celda.setString( sTmp )
co1 = co1 + 1
return None Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 4 invitados