Übernahme von Daten aus TXT Dateien.

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

Bernd_57
Beiträge: 3
Registriert: Mo, 14.08.2023 11:56

Übernahme von Daten aus TXT Dateien.

Beitrag von Bernd_57 »

Hallo
Ich möchte gerne Messdaten von meinem NWT in eine Tabelle übernehmen.
Wie könnte ich das anstellen.
Das Textfile sieht so aus
Kanal1: B3dB: 825 Hz; fm: 11.996087 MHz; f1: 11.995675 MHz; f2: 11.9965 MHz
+ Guete Q:14540.71
Die Werte sind durch Semikolon getrennt.

Die Tabelle soll Spalten besitzen mit folgender Überschrift
Bandbreite (wert B3dB:825HZ) aber nur den Zahlenwert.
Mittenfrquenz (wert fm:11,996087MHZ) nur Zahlenwert
Frequenz F1 (wert f1:11,995675) nur Zahlenwert
Frequenz F2 (wert f2:11,9965) nur Zahlenwert
Güte (wert Q:15540,71) nur zahlenwert

für jeden Messdurchgang erzeugt das Messgerät eine neue Textdatei aus der ich dann
die Werte in die Tabelle einfügen muß.

Gruß Bernd
Benutzeravatar
miesepeter
********
Beiträge: 2111
Registriert: Sa, 10.05.2008 15:05
Wohnort: Bayern

Re: Übernahme von Daten aus TXT Dateien.

Beitrag von miesepeter »

Wie wär's mit einer Beispieldatei? Und der Darstellung des erwünschten Ergebnisses?
- Ciao
Bernd_57
Beiträge: 3
Registriert: Mo, 14.08.2023 11:56

Re: Übernahme von Daten aus TXT Dateien.

Beitrag von Bernd_57 »

Hallo
Also dann mal die Dateien hier wie sie aussehen soll
Quarzmessung.ods
(11.19 KiB) 57-mal heruntergeladen
und das ist die Textdatei
230814_113538.odt
(10.83 KiB) 59-mal heruntergeladen
ist ansich eien einfache*.txt habe ich jetzt aber als .odt gespeichert.

Gruß bernd
quotsi
******
Beiträge: 704
Registriert: Do, 14.11.2013 10:04

Re: Übernahme von Daten aus TXT Dateien.

Beitrag von quotsi »

Ne gewisse Struktur oder Regelmäßigkeit sollte die txt-Datei schon haben...
Einfache Notizen fordern immer viel Handarbeit.
win11 - Avira - LO 7.6.6.3 (X86_64) - AOO 4.1.15
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Karolus
********
Beiträge: 7442
Registriert: Mo, 02.01.2006 19:48

Re: Übernahme von Daten aus TXT Dateien.

Beitrag von Karolus »

Hallo
Liegen die Schlüssel : wert paare immer in der gleichen Reihenfolge vor, werden immer identische Schlüsseleworte benutzt, bleibts bei den Einheiten so wie sie da stehen oder wechseln sich Hz, KHz, MHz, GHz fröhlich ab?
Wie viele dieser Minidateien gibt es denn?
Warum ist vor dem letzten Feld ein Absatzumbruch und nicht auch ein Semicolon?
welche Unregelmässigkeiten gibts sonst noch in den Quelldaten?

Meinst du du schaffst es ~15 bis 25 Zeilen python-code per copy&paste entgegenzunehmen und unfallfrei auf die TextDateien anzuwenden, damit da im Idealfall eine einzige sauber strukturierte …csv Datei rauskommt?
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Bernd_57
Beiträge: 3
Registriert: Mo, 14.08.2023 11:56

Re: Übernahme von Daten aus TXT Dateien.

Beitrag von Bernd_57 »

Hallo
Die Textdatei wir immer in der selben Reihenfolge gespeichert.
Die Zahlenwerte ändern sich aber nicht die Einheiten.
Ich hänge mal drei Messungen an.
Ich muß die gemessenen Quarze dann nach Frequenz und Güte sortieren
deshalb die Calc.Datei

Gruß bernd
230815_112713.odt
(10.62 KiB) 53-mal heruntergeladen
230815_112845.odt
(10.57 KiB) 51-mal heruntergeladen
230815_113015.odt
(10.51 KiB) 55-mal heruntergeladen
Benutzeravatar
miesepeter
********
Beiträge: 2111
Registriert: Sa, 10.05.2008 15:05
Wohnort: Bayern

Re: Übernahme von Daten aus TXT Dateien.

Beitrag von miesepeter »

Workaround ohne Makro

Dieser Workaround macht Sinn, wenn du mehrere oder viele Einzeldateien hast.

1. Füge die Dateien in eine einzige zusammen (Anleitungen im Internet); im Linux-Terminal wäre der Befehl so:
cat *txt > neu.txt
Hier werden alle vorkommenden txt-Dateien, die sich in einem Ordner befinden, zur Datei neu.txt zusammenkopiert.

Unter Windows benutzt man die cmd-Shell und gibt Folgendes ein:
copy *.txt neu.txt

(txt-Dateien in Windows zusammenkopieren mit der PowerShell siehe: https://www.winboard.org/threads/mit-po ... es.255873/)

2. Lade die Datei neu.txt im Writer und nimm mit AltSearch.oxt folgende Änderungen/Ersetzungen vor:
SUCHEN (alle): MHz\p
ERSETZEN (alle): MHz;
(Muss aktiviert sein: [x] reguläre Ausdrücke
.
SucheMHz.png
SucheMHz.png (49.19 KiB) 1347 mal betrachtet
.
ErsetzeMHz.png
ErsetzeMHz.png (43.02 KiB) 1347 mal betrachtet
.
3. Zahlenformat Mitteleuropa: Suche Punkte und ersetze mit Komma (mit AltSearch.oxt oder dem regulären SUCHEN&ERSETZEN-Werkzeug; reguläre Ausdrücke brauchen hier nicht angewendet zu werden).


4. Kopiere den gesamten Text und füge als unformatierten Text in Calc ein. Beachte hierzu, wie die Feldtrenner definiert wurden.
.
CalcDateiImportUnformatiert.png
CalcDateiImportUnformatiert.png (38.12 KiB) 1347 mal betrachtet
.
Nach Einfügen kannst du die reinen Zahlen spaltenweise in dein Schema einfügen.
Noch geschickter wäre es u.U., die Datei gleich so anzulegen wie die Daten importiert werden (und bei Bedarf die entsprechenden Spalten auszublenden...). Ein (folgendes) Sortieren wäre hier relativ einfach.

Ciao

EDIT
Der Beitrag wurde zweimal editiert.
Karolus
********
Beiträge: 7442
Registriert: Mo, 02.01.2006 19:48

Re: Übernahme von Daten aus TXT Dateien.

Beitrag von Karolus »

Hallo
ich vermisse irgendwie die Möglichkeit nach diesem Import nach Calc und spätestens nach Sortierung die Datensätze zu konkreten Messungen (Quarzen ) zuzuordnen?

Daher hab ich mal die vermutlichen Namen der einzelnen Dateien mit verarbeitet, hier mal mit einem direkten Import in ein Calcdokument:

Code: Alles auswählen

from pathlib import Path
import re

number = re.compile(r"\d+\.?\d+")

def import_from_quarzfolder(*_):
    out = [["ID","Bandbreite Hz","MittenFrequenz Mhz",
           "Frequenz F1 Mhz","Frequenz F2 Mhz","Güte Q"]]
    for file in Path.home().glob("Documents/quarz/*.txt"):
        with file.open(encoding="utf8") as in_file:
            row = [file.stem]
            row.extend(list(map(float,number.findall(in_file.read()))))
            out.append(row)
    doc = XSCRIPTCONTEXT.getDocument()
    sheet = doc.CurrentSelection.Spreadsheet
    cursor = sheet.createCursor()
    cursor.collapseToSize(len(out[0]),len(out))
    cursor.DataArray = out
    
Es »erwartet« die …txt-Dateien im Unterverzeichnis ~/Documents/quarz/ deines Benutzers (egal ob Windows oder linux)
Der python-code ist mit in der angehängten
Quarzmessung_2.ods
(11.44 KiB) 44-mal heruntergeladen
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Karolus
********
Beiträge: 7442
Registriert: Mo, 02.01.2006 19:48

Re: Übernahme von Daten aus TXT Dateien.

Beitrag von Karolus »

Hallo
Hier noch ein Einzeiler der sämtliche …txt -dateien eines Verzeichnisses in eine kompakte neue.csv einliest:

Code: Alles auswählen

sed -zr 's/z\n/;/g;s/((B|l|f)[1-3]|[A-Za-z: +])//g;s/\./,/g' $(ls *.txt) > neue.csv
die neue.csv hat hinterher den folgenden Inhalt:

Code: Alles auswählen

900;11,996;11,9955;11,9964;13328,89
600;11,9974;11,997;11,9977;19995,58
900;11,9962;11,9957;11,9966;13329,06
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Antworten