sto sviluppando un foglio elettronico che dovrà funzionare su un Raspberry Pi (con sistema operativo RasbianOS).
All'interno del foglio elettronico sono presenti alcune macro che mi serviranno per "automatizzare" dei processi legati alla mia attività lavorativa.
Tra queste macro c'è quella che utilizzo per "esportare un range di dati in un file semplice di tipo .txt" (macro reperita all'interno della community di OpenOffice Forum che ringrazio).
il codice è questo:
Codice: Seleziona tutto
Sub
oSheet = ThisComponent.getCurrentController.ActiveSheet
srange = oSheet.getCellRangeByName("a1").String
oRange = oSheet.getCellRangeByName(srange)
CellContentArray = oRange.getDataArray()
sFileName = "C:\Users\Admin\Desktop\AppORDINI\barcode.txt" '<<<<<<<<<<<<<<<< modificare
n = FreeFile()
Open ConvertToUrl(sFileName) For Output As #n
For i = 0 To UBound(CellContentArray)
For j = 0 To UBound(CellContentArray(i))
print #n, str(CellContentArray(i)(j));
next
print #n
Next
Close #n
End Sub
il mio problema è il seguente:
quando il file .txt (nel mio caso barcode.txt) viene creato in ambiente Linux i terminatori di riga sono LF (mentre Windows utilizza CR+LF) e inviando il file su ambiente Windows il file si presenta con i dati su un'unica riga.
Per risolvere questo problema potrei utilizzare Notepad++ per convertire il carattere di fine linea (dal formato UNIX (LF) al formato Windows (CR+ LF)) ma non è la soluzione migliore in quanto gli utilizzatori di questo "automatismo" non sono molto pratici di informatica e poi aggiungerei un passaggio che vorrei evitare.
Detto questo voglio anche precisare che ho provato ad aggiungere chr(13) (il carattere di fine linea "CR") in questo modo:
Codice: Seleziona tutto
print #n, str(CellContentArray(i)(j)) + chr(13);
Esiste un modo per "scrivere" questa estrazione direttamente con interruttore di linea CR+LF;
oppure esiste un codice che, direttamente da macro, mi modifica questo file convertendolo e impostandolo a CR+LF.
Grazie del prezioso aiuto,
Cordiali Saluti