Buongiorno a tutti, è la prima volta che posto su questa lista.
Ho l'esigenza di convertire dei file da vari formati di testo ad UTF-8.
Ho fatto delle prove con openoffice e sembra che la cosa funzioni egregiamente.
Poichè i file da convertire sono molti, sto cercando di costrure una macro da richiamare senza aprire OO.
Il buon Paolo Mantovani, mi ha fornito il seguente codice che funziona abbastanza bene.
Sub ConvertToUTF8(sSourceFile As String, sDestFile As String,Optional bOverwrite As Boolean ) Dim sSourceUrl As String Dim sDestUrl As String Dim bLocOverwrite As Boolean Dim oDocument As Object Dim mProps(2) As New com.sun.star.beans.PropertyValue
sSourceUrl = ConvertToUrl(sSourceFile) sDestUrl = ConvertToUrl(sDestFile) If Not IsMissing(bOverwrite) Then bLocOverwrite = bOverwrite Else bLocOverwrite = False End If mProps(0).Name = "Hidden" mProps(0).Value = True mProps(1).Name = "FilterName" mProps(1).Value = "Text (encoded)" mProps(2).Name = "FilterOptions" mProps(2).Value = "UTF8" oDocument = StarDesktop.LoadComponentFromUrl(sSourceUrl, "_default", 0, mProps())
mProps(0).Name = "Overwrite" mProps(0).Value = bLocOverwrite mProps(1).Name = "FilterName" mProps(1).Value = "Text (encoded)" mProps(2).Name = "FilterOptions" mProps(2).Value = "UTF8"
oDocument.storeAsUrl(sDestUrl, mProps()) oDocument.close(True) End Sub
Ma se la chiamo dall'esterno con il comando :
soffice "macro:///Standard.Module1.ConvertToUTF8(/home/questadir/file_da_convertire.txt,/home/questadir/fileconvertito.txt)"
La cosa non funziona come dovrebbe.
Inoltre, accade una cosa strana:
Quando converto un file, nel nuovo file mi viene aggiunto all'inizio del testo uno strano carattere, che sotto linux con l'editor vi viene visualizzato così:
<feff>
Come mai? E' un baco di OO ? è possibile toglierlo durante la conversione?
Premesso che non sono un esperto di questo linguaggio, volevo sapere se qualcuno mi può aiutare a perfezionare questa macro.
-- Cordialmente.
Carmelo Carchedi Juniorbit Sas www.juniorbit.it via Bramantino 9 - 20155 Milano Fax:0270033713
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]