> Cosa significa ricostruire la riga di output?

Beh, da quel che avevo capito hai un file con "n" righe che devi
raggruppare secondo un certo ordine per costruire quella che mi è venuto
in mente di chiamare "riga di output"...tutto qui! ;-)

>> In questo modo non hai bisogno di creare una matrice di quelle
>> dimensioni. ;-)
>
> Però devo salvare il file di output ad ogni riga... o no!
>
> Nel caso dell'array penso vada salvato solo alla fine... ma per il
> momento sono riuscito solo ad accumulare errori.
>
> Se hai qualche dritta è la benvenuta

Ti consiglierei per prima cosa di non usare le funzioni
"LoadDataFromFile" e "SaveDataToFile" tal quali, ma di copiartele dentro
alla sub che vuoi creare ed usare i loro comandi per facilitarti la vita.
Tanto alla fine, tralasciando quel che serve per "iniziare" e "finire"
le parti importanti sono "oInputStream.ReadLine" in "LoadDataFromFile"
con cui leggi una singola linea del file, mentre con
"oOutputStream.WriteString(DataList(i) & sCRLF)" scrivi una riga in un file.

In pratica dovresti aprire i due file, poi usare "oInputStream.ReadLine"
per leggere dal file di partenza, quando hai trovato quello che vuoi
scrivere nel file usi "oOutputStream.WriteString(QuelCheDeviScrivere &
sCRLF)" per scrivere una riga nel nuovo file.

Un po' criptico?... :-)
Nel file di testo allegato c'è un po' di codice...non l'ho provato, l'ho
scritto un po' ad occhio (o meglio recuperato ed assemblato dalle due
funzioni di cui sopra) e quindi non assicuro che funzioni...in più,
ovviamente, manca tutto quello che devi farci tu con il file. ;-)

Ciao!
Emanuele.
Sub esempioLoadSaveFile
Dim FileChannel as Integer
Dim oInputFile as Object
Dim oOutputStream as Object
Dim oStreamString as Object
Dim oUcb as Object
Dim sCRLF as String
Dim oInputStream as Object
Dim oUcb as Object
Dim oOutputFile as Object
Dim sLineaDaScrivere as string

        sCRLF = CHR(13) & CHR(10) 'Serve per andare a capo
'Apre il file da cui devi leggere
        oUcb = createUnoService("com.sun.star.ucb.SimpleFileAccess")
        If oUcb.Exists(FilePath) Then
                oInputStream = 
createUnoService("com.sun.star.io.TextInputStream")
                oInputFile = oUcb.OpenFileReadWrite(FilePath)
                oInputStream.SetInputStream(oInputFile.GetInputStream)
        End If

'Apre il file in cui devi scrivere
        oUcb = createUnoService("com.sun.star.ucb.SimpleFileAccess")
        oOutputStream = createUnoService("com.sun.star.io.TextOutputStream")
        If oUcb.Exists(FilePath) Then
                oUcb.Kill(FilePath)
                oOutputFile = oUcb.OpenFileReadWrite(FilePath)
                oOutputStream.SetOutputStream(oOutputFile.GetOutputStream)
        End If

        While Not oInputStream.IsEOF
                Do
                        'Qui ci fai quel che devi in qualche modo
                        'E metti tutto, ad esempio, in sLineaDaScrivere
                While LettoTuttoQuelloCheServe

                oOutputStream.WriteString(LettoTuttoQuelloCheServe & sCRLF)
        Wend

        oOutputStream.CloseOutput()
        oInputStream.CloseInput()
End Sub

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Rispondere a