Seite 1 von 1
Übernahme von Daten aus TXT Dateien.
Verfasst: Mo, 14.08.2023 12:21
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
Re: Übernahme von Daten aus TXT Dateien.
Verfasst: Mo, 14.08.2023 13:07
von miesepeter
Wie wär's mit einer Beispieldatei? Und der Darstellung des erwünschten Ergebnisses?
- Ciao
Re: Übernahme von Daten aus TXT Dateien.
Verfasst: Mo, 14.08.2023 14:02
von Bernd_57
Hallo
Also dann mal die Dateien hier wie sie aussehen soll
und das ist die Textdatei
ist ansich eien einfache*.txt habe ich jetzt aber als .odt gespeichert.
Gruß bernd
Re: Übernahme von Daten aus TXT Dateien.
Verfasst: Mo, 14.08.2023 19:30
von quotsi
Ne gewisse Struktur oder Regelmäßigkeit sollte die txt-Datei schon haben...
Einfache Notizen fordern immer viel Handarbeit.
Re: Übernahme von Daten aus TXT Dateien.
Verfasst: Mo, 14.08.2023 20:29
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?
Re: Übernahme von Daten aus TXT Dateien.
Verfasst: Di, 15.08.2023 11:34
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
Re: Übernahme von Daten aus TXT Dateien.
Verfasst: Di, 15.08.2023 15:28
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 (49.19 KiB) 3041 mal betrachtet
.

- ErsetzeMHz.png (43.02 KiB) 3041 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 (38.12 KiB) 3041 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.
Re: Übernahme von Daten aus TXT Dateien.
Verfasst: Di, 15.08.2023 17:53
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
Re: Übernahme von Daten aus TXT Dateien.
Verfasst: Mi, 16.08.2023 21:19
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