Textdateien in einer Tabelle zusammenführen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

DoGoG
Beiträge: 4
Registriert: Mo, 06.03.2017 15:42

Textdateien in einer Tabelle zusammenführen

Beitrag von DoGoG »

Guten Tag miteinander,

ich versuche derzeit mehrere Textdateien in einer Tabelle bevorzugt, CSV zusammenzuführen. Die Textdateien liegen alle in einem Ordner in in der Tabelle selbst soll eigentlich ganz simpel, der Dateiname in der ersten spalte stehen und der Inhalt der .txt Datei in der zweiten spalte. Nur leider kenne ich mich mit macros bzw. VBA scripten noch zu wenig aus um etwas vernünftiges zustande zu bringen.

Ich hoffe da kann mir jemand helfen.

Vielen Dank schon einmal

Gruß

DoGoG
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Textdateien in einer Tabelle zusammenführen

Beitrag von komma4 »

Willkommen im Forum.

Für diese Aufgabe würde ich nicht StarBasic nehmen, sondern bash.

Code: Alles auswählen

#!/bin/bash
# define a target file name
target="all.csv"

# change to dir where the files are
cd "../testdata"

# loop the files
for file in s*.txt
  do 
    # info to console
    echo "processing file: $file"
    # the filename 
    printf $file >> $target
    # csv delimiter 
    printf ";" >> $target
    # file content (stripping the newline)
    cat $file | tr -d "\n" >> $target
    # add a newline
    printf "\n" >> $target
  done
Habe gehört, dass in neueren Version von Windows die bash dabei ist, ansonsten bspw cygwin nehmen.

Viel Erfolg!
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
DoGoG
Beiträge: 4
Registriert: Mo, 06.03.2017 15:42

Re: Textdateien in einer Tabelle zusammenführen

Beitrag von DoGoG »

danke erstmal, aber irgendwie passt da etwas nicht, er schreibt einfach den Inhalt der .txt Dateien alles in eine CSV aber für jede Zeile in der Text Datei nutzt er auch eine neue in der .csv.

Also falls da etwas flasch verstanden wurde.

der Dateiname soll in die erste Spalte und der Inhalt der .txt Datei in die zweite spalte, aber für jede neue datei eine neue Zeile erstellt werden.

Beispiel:

Spalte1 | Spalte2
Zeile1| Dateiname_test1 | Inhalt_test1
Zeile2| Dateiname_test3 | Inhalt_test2
Zeile9| Dateiname_test9 | Inhalt_test9

usw.

Ich hoffe jetzt ist es verständlich
Karolus
********
Beiträge: 7440
Registriert: Mo, 02.01.2006 19:48

Re: Textdateien in einer Tabelle zusammenführen

Beitrag von Karolus »

Wir haben das schon verstanden, was du möchtest, aber warum sollen wir ständig den Ghostwriter spielen für jeden "Möchte-gern"-programmierer.

Hier ist eine Lösung in python, die darfst du benutzen und für dich anpassen:

Code: Alles auswählen

from glob import glob

def textsammler():
    doc =XSCRIPTCONTEXT.getDocument()
    sheet = doc.CurrentSelection.Spreadsheet
    out = []
    for filename in glob('test/*.txt'):
        with open(filename) as textfile:
            out.append((filename, textfile.read()))
            
    sheet[0:len(out),:2].DataArray = out
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
DoGoG
Beiträge: 4
Registriert: Mo, 06.03.2017 15:42

Re: Textdateien in einer Tabelle zusammenführen

Beitrag von DoGoG »

Karolus hat geschrieben: Mi, 15.03.2017 19:26 Wir haben das schon verstanden, was du möchtest, aber warum sollen wir ständig den Ghostwriter spielen für jeden "Möchte-gern"-programmierer.

Hier ist eine Lösung in python, die darfst du benutzen und für dich anpassen:

Code: Alles auswählen

from glob import glob

def textsammler():
    doc =XSCRIPTCONTEXT.getDocument()
    sheet = doc.CurrentSelection.Spreadsheet
    out = []
    for filename in glob('test/*.txt'):
        with open(filename) as textfile:
            out.append((filename, textfile.read()))
            
    sheet[0:len(out),:2].DataArray = out
ich habe nie behauptet das ich programmieren könnte, ich kann es schlicht einfach nicht und habe daher Hilfe gesucht.
Thomas Mc Kie
******
Beiträge: 919
Registriert: Mo, 12.04.2010 00:37

Re: Textdateien in einer Tabelle zusammenführen

Beitrag von Thomas Mc Kie »

DoGoG hat geschrieben: Mo, 06.03.2017 15:49Nur leider kenne ich mich mit macros bzw. VBA scripten noch zu wenig aus um etwas vernünftiges zustande zu bringen.
Hallo, das hört sich schon an, als ob du es selbst erlernen möchtest. Bisher davon sehen kann ich aber eigentlich nix. Sonst hättest du mal gepostet, was du probiert hast, und was dann nicht klappt.
Ich glaube in diese Richtung geht der "Vorwurf" von Karolus.
Grüße
Thomas
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Textdateien in einer Tabelle zusammenführen

Beitrag von Stephan »

und der Inhalt der .txt Datei in die zweite spalte
Wie sind denn die Inhalte der txt-Datei beschaffen? Ich vermute eher kurze Texte, aber ist sicher das die Texte jeweils nur einen Absatz umfassen?


Gruß
Stephan
DoGoG
Beiträge: 4
Registriert: Mo, 06.03.2017 15:42

Re: Textdateien in einer Tabelle zusammenführen

Beitrag von DoGoG »

Stephan hat geschrieben: Fr, 17.03.2017 08:44
und der Inhalt der .txt Datei in die zweite spalte
Wie sind denn die Inhalte der txt-Datei beschaffen? Ich vermute eher kurze Texte, aber ist sicher das die Texte jeweils nur einen Absatz umfassen?


Gruß
Stephan
Die Texte in den Dateien sind leider teils unterschiedlich, mal längere Texte mit 2-3 Absätzen aber auch kurze mit 6+ Absätzen, sehr gemischt eben.
Antworten