Während den Entwicklungsarbeiten an JooWI sollte eine Liste der kompleten Projektstruktur erstellt werden. Dabei wollte ich neben der Ordnerstruktur und den beinhalteten Quelldateien auch deren Zeilenanzahl angezeigt haben, um bei den Optimierungen der Quellcodes einen besseren Überblick zu bekommen.
Hierzu öffnet ihr in die Linux Konsole und ihr erhaltet mit folgender Zeile euer gewünschtes Ergebnis:
find * -print0 | xargs -0 wc -l
Ersetzt den STERN einfach durch den gewünschten Pfad. Ihr könnt anschließend unter DATEI die Ausgabe als Textdatei speichern.
Diese habe ich weiterhin in LibreOffice geöffnet und das Leerzeichen als Trennzeichen eingestellt. Außerdem fasste ich die Feldtrenner zusammen. Ich erhielt eine 5 spaltige Tabelle und habe für eine bessere Übersicht ein Makro erstellt.
Da ich mit dem Basic von Open-/LibreOffice nicht wirklich klar komme, hab ich das mir vertrautere VisualBasicforApplications (VBA) verwendet.
Rem Attribute VBA_ModuleType=VBAModule
Option VBASupport 1
Sub structure()
' delete columns not useful
Range("A:A").Delete
Range("C:D").Delete
Dim count As Integer
Dim i As Integer
' get complete rows
count = ActiveSheet.UsedRange.Rows.count
For i = 1 To count
' Cells(y, x)
' delete rows contains "IST"
If Sheets("Tabelle1").Cells(i, 2).Value = "Ist" Then
Rows(i).Delete
i = i - 1
End If
dot = 0
' set DOT variable if column B contains a DOT
For k = 1 To Len(Sheets("Tabelle1").Cells(i, 2).Value)
If Mid$(Sheets("Tabelle1").Cells(i, 2).Value, k, 1) = "." Then
dot = k
End If
Next k
' write path in column C and file in column D if
' variable DOT is not 0 and column B is not "INSGESAMT" (last row)
If dot > 0 And Sheets("Tabelle1").Cells(i, 2).Value <> "insgesamt" Then
For j = 1 To Len(Sheets("Tabelle1").Cells(i, 2).Value)
If Mid$(Sheets("Tabelle1").Cells(i, 2).Value, j, 1) = "/" Then
Pos = j
End If
Next j
Cells(i, 3).Value = Left$(Sheets("Tabelle1").Cells(i, 2).Value, Pos - 1)
Cells(i, 4).Value = Right$(Sheets("Tabelle1").Cells(i, 2).Value, Len(Sheets("Tabelle1").Cells(i, 2).Value) - Pos)
Else
Cells(i, 3).Value = Sheets("Tabelle1").Cells(i, 2).Value
End If
Next i
' copy rows value in last column and delete columns not useful
Range("A:A").Copy
Range("E:E").Insert
Range("A:B").Delete
End Sub
Dadurch erhielt ich eine 3 Spaltige Ansicht, mit dem Pfad in Spalte A, der Datei in Spalte B und der Zeilenanzahl in Spalte C.