Pagina in continua evoluzione

Risolutore per OpenOffice.org

Ho appena iniziato a lavorare con OpenOffice. Dato che in passato ho sempre usato Excel, volevo rendere il nuovo prodotto il più possibile simile al suo nemico. Così mi sono rimboccato le maniche, imparando innanzitutto cosa vuol dire programmare in Basic la suite OpenOffice.org, ed ho provato a realizzare dei programmini di prova. Poi sono passato a qualcosa di più utile, e questo è il primo risultato serio. Volevo creare un tool analogo al risolutore presente in Excel, e anche se molto rozzo, il risolutore per OpenOffice.org è in grado di trattare efficacemente problemi di ottimizzazione multiparametrici. La ricerca delle soluzioni utilizza un motore basato sull'algoritmo del simplesso.
Sicuramente è migliorabile, quindi invito chiunque provi il programma a mandarmi suggerimenti o segnalarmi malfunzionamenti.
Il programma viene fornito così come è (accompagnato da un breve file di istruzioni), senza alcuna garanzia. All'apertura OpenOffice si accorge della presenza di una macro, ed emette un segnale di attenzione per la potenziale presenza di virus. Se non vi fidate...peggio per voi.

Per scaricare il programma zippato

English version

Uno script vbs per la scansione del file system

Dovendo analizzare l'intero file system o anche solo qualche suo nodo, il VBScript mette a disposizione una soluzione particolarmente semplice, che sfrutta il costrutto For...Each e la ricorsione. L'algoritmo di base può essere personalizzato a seconda delle esigenze; ecco un'implementazione che conta i file e le cartelle a partire da un nodo specificato dall'utente:

Dim FSO,N_File,N_Dir,DirPart
Set FSO = CreateObject("Scripting.FileSystemObject")
N_File=0
N_Dir=0
DirPart = InputBox("Inserire il path del nodo radice" _
& Chr(13) & "(ad esempio C:\Documenti)")
ContaFileDir(DirPart)
MsgBox (DirPart & " contiene " & N_File _
& " file, " & N_Dir & " cartelle")

Function ContaFileDir(NomeDir)
Dim F,FF,SF,DC,FC
Set F = FSO.GetFolder(NomeDir)
Set FF = F.Files
Set SF = F.SubFolders
For Each DC in SF
N_Dir=N_Dir+1
' Chiamata ricorsiva
ContaFileDir(NomeDir & "\" & DC.Name)
Next
For Each FC in FF
N_File=N_File+1
Next
End Function

Nota: questo programmino è stato pubblicato sul n° 101 della rivista Dev.

Scrivetemi!

Per tornare alla pagina precedente

Ciao...