Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.software.misc > #185 > unrolled thread
| Started by | Reinhard Zwirner <reinhard.zwirner@t-online.de> |
|---|---|
| First post | 2021-04-30 14:04 +0200 |
| Last post | 2021-05-05 14:01 +0200 |
| Articles | 18 — 6 participants |
Back to article view | Back to de.comp.software.misc
Suche Aussortier-Programm Reinhard Zwirner <reinhard.zwirner@t-online.de> - 2021-04-30 14:04 +0200
Re: Suche Aussortier-Programm Helmut Waitzmann <nn.throttle@xoxy.net> - 2021-04-30 22:49 +0200
Re: Suche Aussortier-Programm Reinhard Zwirner <reinhard.zwirner@t-online.de> - 2021-04-30 23:14 +0200
Re: Suche Aussortier-Programm Helmut Waitzmann <nn.throttle@xoxy.net> - 2021-05-01 16:05 +0200
Re: Suche Aussortier-Programm Reinhard Zwirner <reinhard.zwirner@t-online.de> - 2021-05-01 17:22 +0200
Re: Suche Aussortier-Programm Enrik Berkhan <Enrik.Berkhan@inka.de> - 2021-04-30 21:30 +0000
Re: Suche Aussortier-Programm Reinhard Zwirner <reinhard.zwirner@t-online.de> - 2021-05-01 16:49 +0200
Re: Suche Aussortier-Programm Wolf gang P u f f e <remail@gmx.com> - 2021-05-02 14:15 +0200
Re: Suche Aussortier-Programm Reinhard Zwirner <reinhard.zwirner@t-online.de> - 2021-05-02 14:44 +0200
Re: Suche Aussortier-Programm "Wendelin Uez" <wuez@online.de> - 2021-05-02 14:31 +0200
Re: Suche Aussortier-Programm Reinhard Zwirner <reinhard.zwirner@t-online.de> - 2021-05-02 15:38 +0200
Re: Suche Aussortier-Programm "Wendelin Uez" <wuez@online.de> - 2021-05-03 20:28 +0200
Re: Suche Aussortier-Programm Reinhard Zwirner <reinhard.zwirner@t-online.de> - 2021-05-04 01:27 +0200
Re: Suche Aussortier-Programm Thomas Hochstein <thh@thh.name> - 2021-05-04 07:58 +0200
Re: Suche Aussortier-Programm Reinhard Zwirner <reinhard.zwirner@t-online.de> - 2021-05-04 11:48 +0200
Re: Suche Aussortier-Programm "Wendelin Uez" <wuez@online.de> - 2021-05-04 20:13 +0200
Re: Suche Aussortier-Programm Reinhard Zwirner <reinhard.zwirner@t-online.de> - 2021-05-04 22:28 +0200
Re: Suche Aussortier-Programm "Wendelin Uez" <wuez@online.de> - 2021-05-05 14:01 +0200
| From | Reinhard Zwirner <reinhard.zwirner@t-online.de> |
|---|---|
| Date | 2021-04-30 14:04 +0200 |
| Subject | Suche Aussortier-Programm |
| Message-ID | <if2a31Fnh7hU1@mid.individual.net> |
Liebe Experten,
für meinen Win10/64pro-PC suche ich ein Programm, das das im
Folgenden geschilderte Problem lösen kann:
Wenn ich wandere, habe ich als Spielzeug ein Outdoor-GPS von Garmin
dabei. Es ist so eingestellt, daß jede Sekunde die aktuelle Position
in folgendem Format in einer .gpx-Datei im Ordner "Current"
abgespeichert wird:
<trkpt lat="xx.xxxxxxxxx" lon="yyy.yyyyyyyyy">
<time>YYYY-MM-DDThh:mm:ssZ</time>
</trkpt>
Hinzufügen möchte ich, daß die Speicherung als String ohne jegliche
Strukturierung erfolgt.
Wenn die Wanderung länger dauert und ca. 3000 Trackpunkte gespeichert
wurden, werden die in einer Datei zusammengefaßt, die in den Ordner
"Archive" verschoben wird. Diese Häppchen-Dateien sind ca. 300 kB
groß. Gleichzeitig beginnt eine neue "Trackpunktsammlung" im Ordner
"Current".
Nun ist beim letzten Mal irgendwann irgendwo irgendwie ein Malheur
passiert. Jedenfalls war eine der Dateien aus dem "Archive"-Ordner
sagenhafte 600 MB groß! Eine Analyse ergab, daß "Dateiheader" samt
"Dateiformat" in Ordnung und alle Trackpunke gespeichert sind, aber
jeder Trackpunkt mehrere 1000 Mal!
Ich suche jetzt ein Programm, das diese Datei durchflöht und außer
dem für jede Sekunde gespeicherten ersten Trackpunkt alle anderen für
diese Sekunde gespeicherten Trackpunktdaten löscht. Gibt's sowas? Ich
könnte die vorhandene Datei so vorbereiten, daß sie nur die im o. g.
Format gespeicherten Trackpunkte enthält und sonst nichts.
Für sachdienliche Hinweise dankt im voraus
freundlich grüßend
Reinhard
[toc] | [next] | [standalone]
| From | Helmut Waitzmann <nn.throttle@xoxy.net> |
|---|---|
| Date | 2021-04-30 22:49 +0200 |
| Message-ID | <83r1irxzti.fsf@helmutwaitzmann.news.arcor.de> |
| In reply to | #185 |
Reinhard Zwirner <reinhard.zwirner@t-online.de>:
>für meinen Win10/64pro-PC suche ich ein Programm, das das im
>Folgenden geschilderte Problem lösen kann:
>
>Wenn ich wandere, habe ich als Spielzeug ein Outdoor-GPS von Garmin
>dabei. Es ist so eingestellt, daß jede Sekunde die aktuelle Position
>in folgendem Format in einer .gpx-Datei im Ordner "Current"
>abgespeichert wird:
>
><trkpt lat="xx.xxxxxxxxx" lon="yyy.yyyyyyyyy">
> <time>YYYY-MM-DDThh:mm:ssZ</time>
></trkpt>
>
Also ist jeder Messpunkt ein Dreizeiler.
Wenn man jeden Messpunkt zum Einzeiler macht (also den Zeilenwechsel
am Ende der ersten und der zweiten Zeile entfernt), erhält man eine
5spaltige Liste von Messpunkten. Wenn man die nach der vierten
Spalte sortiert, kann man anschließend aufeinanderfolgende
Dubletten entfernen.
>Hinzufügen möchte ich, daß die Speicherung als String ohne jegliche
>Strukturierung erfolgt.
>
>Wenn die Wanderung länger dauert und ca. 3000 Trackpunkte gespeichert
>wurden, werden die in einer Datei zusammengefaßt, die in den Ordner
>"Archive" verschoben wird. Diese Häppchen-Dateien sind ca. 300 kB
>groß. Gleichzeitig beginnt eine neue "Trackpunktsammlung" im Ordner
>"Current".
>
>Nun ist beim letzten Mal irgendwann irgendwo irgendwie ein Malheur
>passiert. Jedenfalls war eine der Dateien aus dem "Archive"-Ordner
>sagenhafte 600 MB groß! Eine Analyse ergab, daß "Dateiheader" samt
>"Dateiformat" in Ordnung und alle Trackpunke gespeichert sind, aber
>jeder Trackpunkt mehrere 1000 Mal!
>
>Ich suche jetzt ein Programm, das diese Datei durchflöht und außer
>dem für jede Sekunde gespeicherten ersten Trackpunkt alle anderen für
>diese Sekunde gespeicherten Trackpunktdaten löscht. Gibt's sowas? Ich
>könnte die vorhandene Datei so vorbereiten, daß sie nur die im o. g.
>Format gespeicherten Trackpunkte enthält und sonst nichts.
Ja, bitte. Das wäre gut.
Die Zeilenwechsel entfernen kann man sicher mit «sed», «awk» oder
auch nur dem Shell:
Nur mit dem Shell:
while IFS= read erste_zeile &&
IFS= read zweite_zeile &&
IFS= read dritte_zeile
do
printf '%s\n' "$erste_zeile $zweite_zeile $dritte_zeile"
done < 600MB_Datei.gpx
Schneller läuft es wahrscheinlich mit Hilfe von «sed»:
(
sp1='<trkpt' &&
sp2='lat="[+-]?[[:digit:]]{2}\.[[:digit:]]+"' &&
sp3='lon="[+-]?[[:digit:]]{3}\.[[:digit:]]+">' &&
sed -E -e \
/"$sp1 $sp2 $sp3"'/ {
N; N
s/\n//g
}' -- 600MB_Datei.gpx
)
Sortieren nach der vierten Spalte:
sort -k 4,4
Messzeitpunkt‐Dubletten entfernen:
uniq -f 3
Alles zusammengenommen:
(
sp1='<trkpt' &&
sp2='lat="[+-]?[[:digit:]]{2}\.[[:digit:]]+"' &&
sp3='lon="[+-]?[[:digit:]]{3}\.[[:digit:]]+">' &&
sed -E -e \
/"$sp1 $sp2 $sp3"'/ {
N; N
s/\n//g
}' -- 600MB_Datei.gpx
) |
sort -k 4,4 |
uniq -f 3 > eingedampfte_Datei.gpx
Als Shell‐Skript «eindampfen»:
#!/bin/sh
(
sp1='<trkpt' &&
sp2='lat="[+-]?[[:digit:]]{2}\.[[:digit:]]+"' &&
sp3='lon="[+-]?[[:digit:]]{3}\.[[:digit:]]+">' &&
sed -E -e \
/"$sp1 $sp2 $sp3"'/ {
N; N
s/\n//g
}'
) |
sort -k 4,4 |
uniq -f 3
Aufrufen mit
eindampfen < 600MB_Datei.gpx > eingedampfte_Datei.gpx
Die eingedampfte Datei enthält die Messpunkte jetzt noch als
Einzeiler. Stört das? Dann müsste man die Zeilen noch
wiederumbrechen. Das lässt sich sicher auch mit «sed», «awk» oder
dem Shell bewerkstelligen. (Ich mach' mir aber nur dann die Mühe,
mir das zu überlegen, wenn es nötig ist.)
[toc] | [prev] | [next] | [standalone]
| From | Reinhard Zwirner <reinhard.zwirner@t-online.de> |
|---|---|
| Date | 2021-04-30 23:14 +0200 |
| Message-ID | <if3aa0Ftmc0U1@mid.individual.net> |
| In reply to | #186 |
Helmut Waitzmann schrieb: > Reinhard Zwirner <reinhard.zwirner@t-online.de>: > >> für meinen Win10/64pro-PC suche ich ein Programm, das das im >> Folgenden geschilderte Problem lösen kann: >> >> Wenn ich wandere, habe ich als Spielzeug ein Outdoor-GPS von Garmin >> dabei. Es ist so eingestellt, daß jede Sekunde die aktuelle >> Position in folgendem Format in einer .gpx-Datei im Ordner >> "Current" abgespeichert wird: >> >> <trkpt lat="xx.xxxxxxxxx" lon="yyy.yyyyyyyyy"> >> <time>YYYY-MM-DDThh:mm:ssZ</time> >> </trkpt> >> > > Also ist jeder Messpunkt ein Dreizeiler. Hallo Helmut, nein, leider nicht. Ich habe die Notation der einzelnen Wegpunkte nur der Übersichtlichkeit halber so dargesellt. Tatsächlich ist es, wie ich im Folgenden schrieb, ein (quasi endloser) String ohne jegliche Lücke bzw. ohne jegichen Zeilenumbruch: <trkpt lat="xx.xxxxxxxxx" lon="yyy.yyyyyyyyy"><time>YYYY-MM-DDThh:mm:ssZ</time></trkpt><trkpt lat="xx.xxxxxxxxx" lon="yyy.yyyyyyyyy"><time>YYYY-MM-DDThh:mm:ssZ</time></trkpt><trkpt lat="xx.xxxxxxxxx" lon="yyy.yyyyyyyyy"><time>YYYY-MM-DDThh:mm:ssZ</time></trkpt>... Und nun? Seufzend Reinhard
[toc] | [prev] | [next] | [standalone]
| From | Helmut Waitzmann <nn.throttle@xoxy.net> |
|---|---|
| Date | 2021-05-01 16:05 +0200 |
| Message-ID | <83czuay2fy.fsf@helmutwaitzmann.news.arcor.de> |
| In reply to | #187 |
Reinhard Zwirner <reinhard.zwirner@t-online.de>:
>Helmut Waitzmann schrieb:
>> Also ist jeder Messpunkt ein Dreizeiler.
>>
>nein, leider nicht. Ich habe die Notation der einzelnen Wegpunkte
>nur der Übersichtlichkeit halber so dargesellt. Tatsächlich ist es,
>wie ich im Folgenden schrieb, ein (quasi endloser) String ohne
>jegliche Lücke bzw. ohne jegichen Zeilenumbruch:
><trkpt lat="xx.xxxxxxxxx"
>lon="yyy.yyyyyyyyy"><time>YYYY-MM-DDThh:mm:ssZ</time></trkpt><trkpt
>lat="xx.xxxxxxxxx"
>lon="yyy.yyyyyyyyy"><time>YYYY-MM-DDThh:mm:ssZ</time></trkpt><trkpt
>lat="xx.xxxxxxxxx"
>lon="yyy.yyyyyyyyy"><time>YYYY-MM-DDThh:mm:ssZ</time></trkpt>...
>
>Und nun?
>
Berichte, ob das Shell‐Kommando
nice -n 19 -- sed -E -e '
/(<\/trkpt>)(.)/ {
s//\1\n\2/
P;D
}
' -- 600MB_Datei.gpx > zeilenweise_Datei.gpx
die Datei «600MB_Datei.gpx» in die Datei «zeilenweise_Datei.gpx»
kopiert, dabei aber nach jedem Datensatz (erkennbar am Text
«</trkpt>») einen Zeilenwechsel einfügt. Das wäre dann je ein
Zeilenvorschub nach 87 Zeichen und bewirkt eine Vergrößerung der
Datenmenge um 100/87 Prozent.
Problem: «sed» arbeitet prinzipiell zeilenweise. Sollte es so
implementiert sein, dass es immer eine ganze Zeile einliest, könnte
eine 600 MB lange Zeile Ärger verursachen.
[toc] | [prev] | [next] | [standalone]
| From | Reinhard Zwirner <reinhard.zwirner@t-online.de> |
|---|---|
| Date | 2021-05-01 17:22 +0200 |
| Message-ID | <if5a14Far1aU1@mid.individual.net> |
| In reply to | #189 |
Helmut Waitzmann schrieb: [...] Hallo Helmut, danke für all Deine Bemühungen. Aber es war verlorene Liebesmüh': ich habe keine Ahnung, wie ich mit Deinem Programm umgehen soll :-(! Enriks Hinweis, es mal mit GPSBabel zu versuchen, hat zumindest den Erfolg gehabt,daß der Endlosstring in diskrete Trackpunkte zerlegt wurde. Im Augenblick suche ich mit Notepad++ jeweils den ersten Trackpunkt der "Sammlung" für die folgende Sekunde und lösche bis auf den ersten alle Trackpunke für die aktuelle Sekunde usw. Mühsam, aber klappt. Ciao Reinhard
[toc] | [prev] | [next] | [standalone]
| From | Enrik Berkhan <Enrik.Berkhan@inka.de> |
|---|---|
| Date | 2021-04-30 21:30 +0000 |
| Message-ID | <s6hsu3$bsp$1@starfleet.inka.de> |
| In reply to | #185 |
Reinhard Zwirner <reinhard.zwirner@t-online.de> wrote: > Ich suche jetzt ein Programm, das diese Datei durchflöht und außer > dem für jede Sekunde gespeicherten ersten Trackpunkt alle anderen für > diese Sekunde gespeicherten Trackpunktdaten löscht. Gibt's sowas? Ich > könnte die vorhandene Datei so vorbereiten, daß sie nur die im o. g. > Format gespeicherten Trackpunkte enthält und sonst nichts. Ob es nun genau das kann, weiß ich nicht. Aber sieh dir mal `gpsbabel' an. Viele Grüße, Enrik
[toc] | [prev] | [next] | [standalone]
| From | Reinhard Zwirner <reinhard.zwirner@t-online.de> |
|---|---|
| Date | 2021-05-01 16:49 +0200 |
| Message-ID | <if583pFahbuU1@mid.individual.net> |
| In reply to | #188 |
Enrik Berkhan schrieb: [...] > Ob es nun genau das kann, weiß ich nicht. Aber sieh dir mal `gpsbabel' > an. Hallo Enrik, konnte es leider nicht. Aber es konnte was anderes: den Endlosstring aufteilen, so daß jetzt jeder Trackpunkt vier Zeilen belegt. Immerhin ein Anfang ... Es dankt auf jeden Fall Reinhard
[toc] | [prev] | [next] | [standalone]
| From | Wolf gang P u f f e <remail@gmx.com> |
|---|---|
| Date | 2021-05-02 14:15 +0200 |
| Message-ID | <s6m536$3he$1@dont-email.me> |
| In reply to | #185 |
Am 30.04.2021 um 14:04 schrieb Reinhard Zwirner: > Liebe Experten, > > für meinen Win10/64pro-PC suche ich ein Programm, das das im > Folgenden geschilderte Problem lösen kann: > > Wenn ich wandere, habe ich als Spielzeug ein Outdoor-GPS von Garmin > dabei. Es ist so eingestellt, daß jede Sekunde die aktuelle Position > in folgendem Format in einer .gpx-Datei im Ordner "Current" > abgespeichert wird: > > <trkpt lat="xx.xxxxxxxxx" lon="yyy.yyyyyyyyy"> > <time>YYYY-MM-DDThh:mm:ssZ</time> > </trkpt> > > Hinzufügen möchte ich, daß die Speicherung als String ohne jegliche > Strukturierung erfolgt. > > Wenn die Wanderung länger dauert und ca. 3000 Trackpunkte gespeichert > wurden, werden die in einer Datei zusammengefaßt, die in den Ordner > "Archive" verschoben wird. Diese Häppchen-Dateien sind ca. 300 kB > groß. Gleichzeitig beginnt eine neue "Trackpunktsammlung" im Ordner > "Current". > > Nun ist beim letzten Mal irgendwann irgendwo irgendwie ein Malheur > passiert. Jedenfalls war eine der Dateien aus dem "Archive"-Ordner > sagenhafte 600 MB groß! Eine Analyse ergab, daß "Dateiheader" samt > "Dateiformat" in Ordnung und alle Trackpunke gespeichert sind, aber > jeder Trackpunkt mehrere 1000 Mal! > > Ich suche jetzt ein Programm, das diese Datei durchflöht und außer > dem für jede Sekunde gespeicherten ersten Trackpunkt alle anderen für > diese Sekunde gespeicherten Trackpunktdaten löscht. Gibt's sowas? Ich > könnte die vorhandene Datei so vorbereiten, daß sie nur die im o. g. > Format gespeicherten Trackpunkte enthält und sonst nichts. > > Für sachdienliche Hinweise dankt im voraus > freundlich grüßend Eine Aufgabe, die man im guten alten Basic lösen kann. Vor 20 Jahren war ich da mal fit, aber heute...? Da kann ich nicht mehr helfen, das ich mich grundsätzlich in die Datei- und Stringverarbeitung von Basic wieder einarbeiten müsste. Aber mal ein anderer Hinweis. Wenn ich im Etrex einen Track mitlaufen lasse, dann ist der als aktueller Track sehr umfangreich. Wenn ich es richtig in Erinnerung habe, sind da Datum/Zeit/Richtung/Geschwindikkeit...usw für jede Sekunde enthalten. Wenn ich diesen Track dann Archiviere im Etrex, also speichere unter irgend einem Namen, dann werden dort viele Informationen (Richtung/Geschwindigkeit/Zeitpunkt) entfernt und auch die Anzahl der Trackpoints wird deutlich spürbar ausgedünnt. Nicht dass du den "aktuellen Track" bzw. eine Teildatei aus dem Gerät geholt hast, wo der deutlich höhere Informationsgehalt gespeichert ist. Erst durch das Speichern der aktuellen Aufzeichnung wird die Datenmenge vom Gerät selbst reduziert.
[toc] | [prev] | [next] | [standalone]
| From | Reinhard Zwirner <reinhard.zwirner@t-online.de> |
|---|---|
| Date | 2021-05-02 14:44 +0200 |
| Message-ID | <if7l52FonejU1@mid.individual.net> |
| In reply to | #192 |
Wolf gang P u f f e schrieb: [...] > Aber mal ein anderer Hinweis. > Wenn ich im Etrex einen Track mitlaufen lasse, dann ist der als > aktueller Track sehr umfangreich. > Wenn ich es richtig in Erinnerung habe, sind da > Datum/Zeit/Richtung/Geschwindikkeit...usw für jede Sekunde enthalten. > Wenn ich diesen Track dann Archiviere im Etrex, also speichere unter > irgend einem Namen, dann werden dort viele Informationen > (Richtung/Geschwindigkeit/Zeitpunkt) entfernt und auch die Anzahl der > Trackpoints wird deutlich spürbar ausgedünnt. > Nicht dass du den "aktuellen Track" bzw. eine Teildatei aus dem Gerät > geholt hast, wo der deutlich höhere Informationsgehalt gespeichert ist. > Erst durch das Speichern der aktuellen Aufzeichnung wird die Datenmenge > vom Gerät selbst reduziert. Hallo Wolfgang, danke für den Hinweis. Aber die Speicherung der Teilstrecken im Archive-Ordner meines 64sx erfolgt absolut automatisch! Und in der aufgeblähten Datei sind keinerlei zusätzliche Infos enthalten, sondern - zum Glück _NUR_ in dieser einen Teilstrecken-Datei - die einzelnen Trackpunkte jeweils ein paar tausend Mal :-( ... Ciao Reinhard
[toc] | [prev] | [next] | [standalone]
| From | "Wendelin Uez" <wuez@online.de> |
|---|---|
| Date | 2021-05-02 14:31 +0200 |
| Message-ID | <s6m645$a9t$1@dont-email.me> |
| In reply to | #185 |
Die Daten liegen im sog. XML-Format vor, wobei nicht sicher ist, ob zwischen den Datensätzen ein Trennzeichen existiert. Das ist das eigentliche Problem. Ziel ist es, eine Datei zu erhalten, in der pro Zeile genau ein Datensatz steht. Ein Datensatz beginnt mit "<trkp" und endet mit "</trkp>". Kann man eine solche Datei in ein Tabellenkalkulationsprogramm einlesen, auch wenn nur die gesamte Zeile in der ersten Spalte steht, dann können die heutigen Tabellenprogramme doppelte Zeilen mit eingebauten Mitteln entfernen und es bleiben nur die ersten Zeilen übrig. Ich würde so vorgehen: - Datei mit Dateiendung .xml versehen - diese versuchen OHNE Trennzeichen zu spezifizieren einzulesen (also nicht Tab, Komma, Semikolon etc. angeben, nur reinen Text) - bingo, wenn alles zeilenweise angezeigt wird, dann Doubletten löschen und fertig - falls nicht, erstmal mit allen anderen verfügbaren Text- und Kalkulationsprogrammen versuchen mit dem Ziel, eine zeilenweise Anzeigei zu erzeugen - falls auch das alles nicht geht, das geht garantiert: unter heise.de/software den Notepad++ downloaden (opensource,free), damit Datei einlesen und "</trkp>" ersetzen durch "</trkp>/nl" - das /nl steht für new line und fügt einen Zeilenvorschub ein. Außerdem kann Notepad++ auch doppelte Zeilen entfernen. That's it.
[toc] | [prev] | [next] | [standalone]
| From | Reinhard Zwirner <reinhard.zwirner@t-online.de> |
|---|---|
| Date | 2021-05-02 15:38 +0200 |
| Message-ID | <if7oapFpaksU1@mid.individual.net> |
| In reply to | #193 |
Wendelin Uez schrieb:
> Die Daten liegen im sog. XML-Format vor, wobei nicht sicher ist, ob
> zwischen den Datensätzen ein Trennzeichen existiert. Das ist das
> eigentliche Problem.
>
> Ziel ist es, eine Datei zu erhalten, in der pro Zeile genau ein
> Datensatz steht. Ein Datensatz beginnt mit "<trkp" und endet mit
> "</trkp>".
>
> Kann man eine solche Datei in ein Tabellenkalkulationsprogramm
> einlesen, auch wenn nur die gesamte Zeile in der ersten Spalte steht,
> dann können die heutigen Tabellenprogramme doppelte Zeilen mit
> eingebauten Mitteln entfernen und es bleiben nur die ersten Zeilen
> übrig.
>
>
>
> Ich würde so vorgehen:
>
> - Datei mit Dateiendung .xml versehen
>
> - diese versuchen OHNE Trennzeichen zu spezifizieren einzulesen (also
> nicht Tab, Komma, Semikolon etc. angeben, nur reinen Text)
>
> - bingo, wenn alles zeilenweise angezeigt wird, dann Doubletten
> löschen und fertig
>
>
>
> - falls nicht, erstmal mit allen anderen verfügbaren Text- und
> Kalkulationsprogrammen versuchen mit dem Ziel, eine zeilenweise
> Anzeigei zu erzeugen
>
>
> - falls auch das alles nicht geht, das geht garantiert:
> unter heise.de/software den Notepad++ downloaden (opensource,free),
> damit Datei einlesen und "</trkp>" ersetzen durch "</trkp>/nl" - das
> /nl steht für new line und fügt einen Zeilenvorschub ein.
>
> Außerdem kann Notepad++ auch doppelte Zeilen entfernen.
>
> That's it.
Hi,
mittlerweile hat GPSBabel dafür gesorgt, daß die Datei nicht mehr ein
"Endlos-String" ist, sondern die einzelnen Trackpunkte jeweils
vierzeilig untereinander stehen (sorry für den Irrtum in meinem OP!):
<trkpt lat="xx.xxxxxxxxx" lon="yyy.yyyyyyyyy">
<ele>mmm.mmm</ele>
<time>YYYY-MM-DDThh:mm:ssZ</time>
</trkpt>
Derzeit bin ich auch tatsächlich mit Notepad++ zugange, kenne aber
leider nicht so die Feinheiten. Da hat die Datei jetzt übrinx knapp
23,4 Mi. Zeilen!
Am liebsten würde ich, nachdem ich im jeweils 1. "neuzeitlichen"
Trackpunkt die Sekundenangabe geändert habe, im Menü
Suchen -> Suchen, Reiter "Ersetzen", _sowas_wie_
<trkpt*.*><.*mm:ssZ></trkpt>
^^^^^
(Zeitpunkt, für den die jeweils überflüssigen Trackpunkte gelöscht
werden sollen)
eingeben und durch
<"leeres Feld">
ersetzen lassen. Aber zum einen weiß ich nicht, was ich da genau
eingeben müßte, zum anderen hätte ich dann riesige Lücken zwischen
den einzelnen Trackpunkten, die dann auch noch zu löschen wären.
Seufzend
Reinhard (kein Programmierer, nur Anwender, aber das auch nur,
solange es nicht zu kompliziert wird ...)
[toc] | [prev] | [next] | [standalone]
| From | "Wendelin Uez" <wuez@online.de> |
|---|---|
| Date | 2021-05-03 20:28 +0200 |
| Message-ID | <s6pfi2$4v8$2@dont-email.me> |
| In reply to | #195 |
> mittlerweile hat GPSBabel dafür gesorgt, daß die Datei nicht mehr ein > "Endlos-String" ist, sondern die einzelnen Trackpunkte jeweils > vierzeilig untereinander stehen (sorry für den Irrtum in meinem OP!): > > <trkpt lat="xx.xxxxxxxxx" lon="yyy.yyyyyyyyy"> > <ele>mmm.mmm</ele> > <time>YYYY-MM-DDThh:mm:ssZ</time> > </trkpt> Das siejt doch gut aus. Nur zur Sicherheit, sehe ich das richtg, daß jetzt... 1. ein Datensatz somit *IMMER* genau 4 Zeilen umfaßt und 2. das Problem darin besteht, daß *aufeinanderfolgende* Datensätze identisch sind und aussortiert werden sollten? Dann könnte man ein kleines VB-Skript schreiben, welches jeweils vier Zeilen einliest und diese nur in die Ausgabedatei schreibt, wenn sich der Viererblock vom vorhergehenden unterscheidet. Das Skript müsste dann nur die vier Zeilen vergleichen und bräuchte ansonsten keine Daten extrahieren, der Code wäre also trivial.
[toc] | [prev] | [next] | [standalone]
| From | Reinhard Zwirner <reinhard.zwirner@t-online.de> |
|---|---|
| Date | 2021-05-04 01:27 +0200 |
| Message-ID | <ifbf6kFh116U1@mid.individual.net> |
| In reply to | #196 |
Wendelin Uez schrieb: [...] > Nur zur Sicherheit, sehe ich das richtg, daß jetzt... > 1. ein Datensatz somit *IMMER* genau 4 Zeilen umfaßt und Jau! > 2. das Problem darin besteht, daß *aufeinanderfolgende* Datensätze > identisch sind und ... ... bis auf den jeweils ersten dieser identischen Datensätze ... > ... aussortiert werden sollten? > Dann könnte man ein kleines VB-Skript schreiben, welches jeweils vier > Zeilen einliest und diese nur in die Ausgabedatei schreibt, wenn sich > der Viererblock vom vorhergehenden unterscheidet. Genau! Aber was ist ein VB-Skript? > Das Skript müsste dann nur die vier Zeilen vergleichen und bräuchte > ansonsten keine Daten extrahieren, der Code wäre also trivial. Für Experten schon, aber nicht für mich ... <seufz>. Hier hilft Selbsterkenntnis leider nicht weiter. Ciao Reinhard
[toc] | [prev] | [next] | [standalone]
| From | Thomas Hochstein <thh@thh.name> |
|---|---|
| Date | 2021-05-04 07:58 +0200 |
| Message-ID | <dcsm.20210504075858.1316@scatha.ancalagon.de> |
| In reply to | #197 |
Reinhard Zwirner schrieb: > Aber was ist ein VB-Skript? Ein in der Sprache Visual Basic gehaltenes Script. (Das funktioniert natürlich auch in jeder anderen Sprache, in manchen konzeptuell einfacher als in anderen.) -thh
[toc] | [prev] | [next] | [standalone]
| From | Reinhard Zwirner <reinhard.zwirner@t-online.de> |
|---|---|
| Date | 2021-05-04 11:48 +0200 |
| Message-ID | <ifcjifFni4dU1@mid.individual.net> |
| In reply to | #198 |
Thomas Hochstein schrieb: > Reinhard Zwirner schrieb: > >> Aber was ist ein VB-Skript? > > Ein in der Sprache Visual Basic gehaltenes Script. Vielen Dank für die Aufklärung. Wieder was, wovon ich keine Ahnung habe ;-( ... Aber was anderes: Ich habe jetzt herausgefunden, wie ich in Notepad++ die "Duplikate" ohne größeren Aufwand löschen kann. Dabei erhalte ich sogar die Info, wie viele Zeilen gelöscht wurden. Leider hat das Ganze einen Nachteil - ich muß anschließend die leeren Zeilen (bisher max. ca. 25000) löschen. Deshalb die Frage: Kann man in Notepad++ beim Ersetzen irgendwie erreichen, daß nicht nur der Zeileninhalt, sondern auch die Zeile gleich mitgelöscht wird? Auch für diesbezügliche Hinweise dankt im voraus Reinhard
[toc] | [prev] | [next] | [standalone]
| From | "Wendelin Uez" <wuez@online.de> |
|---|---|
| Date | 2021-05-04 20:13 +0200 |
| Message-ID | <s6s2vu$p19$1@dont-email.me> |
| In reply to | #197 |
> Genau! Aber was ist ein VB-Skript?
Ein Visual-Basic-Skript. Diese Programmiersprache ist in Windows enthalten.
Anbei ein einfaches Skript, das die genannte Aufgabe löst:
- kopiere den untenstehenden Quellcode in den Windows-Editor
- speichere ihn in einem beliebigen leeren Ordner ab unter dem Namen
DUPLORAUS.vbs
- kopiere eine Kopie der Umwandlungsdatei als EINGABE.txt in denselben
Ordner
- Doppelklick im Explorer auf DUPLORAUS.vbs startet das Skript
- nach dem Durchlauf kommt die Meldung "fertig" und die unterschiedlichen
Viereblöcke stehen in der Datei ausgabe.txt im selben Ordner.
Wichtig:
- die Eingabedatei muß eine durch 4 teilbare Zahl an Zeilen enthalten, sonst
Fehler
- also keine Leerzeile am Ende
- die Ausgabedatei AUSGABE.txt darf nicht existieren, sonst wird sie
erweitert, nicht überschrieben
Der Code ist selbsterklärend, es werden immer vier Zeilen gelesen,
verglichen, und falls unterschiedlich geschrieben.
good luck!
wuez
Un hier der Skript-Code:
-------------------schnipp -------------------------------------------
'*** Hinweis:
' - Eingabedatei MUSS eine durch 4 teilbare Anzahl Zeilen enthalten!!!
' - Ausgabedatei darf noch nicht existieren, sonst wird Ausgabe angehängt
'*** Deklarationen
CONST FOR_APPENDING = 8
'*** Ein- und Ausgabedateien
INPUTFILE = "eingabe.txt"
OUTPUTFILE = "ausgabe.txt"
'*** Dateien öffnen
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFileINP = objFSO.OpenTextFile (INPUTFILE)
Set objFileOUT = objFSO.OpenTextFile (OUTPUTFILE,FOR_APPENDING,True)
'*** Eingabedatei bis zum Ende lesen
WHILE NOT objFileINP.AtEndOfStream
'neuen Viererblock lesen
N1 = obJFileINP.ReadLine
N2 = obJFileINP.ReadLine
N3 = obJFileINP.ReadLine
N4 = obJFileINP.ReadLine
'vergleichen mit altem
NEUGLEICHALT = N1=A1 AND N2=A2 AND N3=A3 AND N4=A4
IF NOT NEUGLEICHALT THEN
'unterschiedlichen Viererblock schreiben
objFileOUT.WriteLine N1
objFileOUT.WriteLine N2
objFileOUT.WriteLine N3
objFileOUT.WriteLine N4
'alt = neu
A1 = N1
A2 = N2
A3 = N3
A4 = N4
END IF
WEND
objFileINP.Close
objFileOUT.Close
MSGBOX "fertig"
-------------------schnapp -------------------------------------------
[toc] | [prev] | [next] | [standalone]
| From | Reinhard Zwirner <reinhard.zwirner@t-online.de> |
|---|---|
| Date | 2021-05-04 22:28 +0200 |
| Message-ID | <ifdp3tF8h7U1@mid.individual.net> |
| In reply to | #200 |
Wendelin Uez schrieb: [...] > Der Code ist selbsterklärend, es werden immer vier Zeilen gelesen, > verglichen, und falls unterschiedlich geschrieben. > > good luck! Hallo Wendelin, hurra! Es hat auf Anhieb geklappt! Vielen, vielen Dank! Wie kann ich das wiedergutmachen? Fragt strahlend Reinhard
[toc] | [prev] | [next] | [standalone]
| From | "Wendelin Uez" <wuez@online.de> |
|---|---|
| Date | 2021-05-05 14:01 +0200 |
| Message-ID | <s6u46h$71o$1@dont-email.me> |
| In reply to | #201 |
> Es hat auf Anhieb geklappt Na wieso auch nicht? Kommt ja von mir :-) > Wie kann ich das wiedergutmachen? Halte die Newsgroup am Leben und steuere ggfs. auch mal was bei. wuez
[toc] | [prev] | [standalone]
Back to top | Article view | de.comp.software.misc
csiph-web