Daten aus Textdatei auslesen und neue Textdatei erzeugen
-
Hallo, ich bin neu hier und habe keinerlei Erfahrungen im Bereich des Programmierens.Daher habe ich mir gedacht hier auf fachkundige Hilfe zu stoßen.
zu meinem Problem:
Mir liegt eine Textdatei mit Messdaten einer Messfahrt eines PKW vor.
In dieser Datei befinden sich unter anderem die Koordinaten der Messfahrt und die in diesem Moment gefahrene Geschwindigkeit.
Ich benötige jetzt ein Tool, dass die Geschwindigkeiten analysiert und die dazu gehörigen Koordinaten in einer separaten Textdatei ausgibt.
Die Kriterien hierfür sind Geschwindigkeitsbereiche von 0-30Km/h ;30-60Km/h ;60-90Km/h ;90-120Km/h ;120-150Km/h und 150-180Km/h . Für jeden einzelnen Geschwindigkeitsbereich soll eine eigene Textdatei ausgegeben werden.
Das Programm soll also für den ersten Bereich zum Beispiel die Geschwindigkeiten durchsuchen ob sie >0 bis <=30 Km/h ist und bei Zutreffen die dazugehörigen Koordinaten ausgeben. Wird der Geschwindigkeitsbereich verlassen, so soll weiter gesucht werden, bis wieder der Geschwindigkeitsbereich erreicht wird. Die einzelnen Koordinatenhäppchen sollen dann folgendermaßen ausgegeben werden.(Für die nächsten Bereiche muss die Prozedur dann separat nochmal durchgeführt werden aber eben dann mit v >30 < 90Km/h usw...<?xml version="1.0" encoding="UTF-8"?> <kml xmlns="http://earth.google.com/kml/2.0"> <Document> <Placemark> <description>Messdaten Ausgabe fuer Google Earth</description> <name>1. Bereich bis 20Km/h</name> <LookAt> <longitude>10.22287943</longitude> <latitude>48.53469316</latitude> <range>10000</range> <tilt>0</tilt> <heading>0</heading> </LookAt> <visibility>1</visibility> <open>0</open> <Style> <LineStyle> <color>ff00ffff</color> <width>2</width> </LineStyle> </Style> <LineString> <coordinates> 11.30542990, 53.01130095 11.30548484, 53.01121787 11.30554725, 53.01111891 11.30560671, 53.01103081 11.30566877, 53.01095905 11.30571870, 53.01088453 11.30576740, 53.01081492 11.30581275, 53.01074798 11.30585147, 53.01068893 11.30589353, 53.01063361 11.30593840, 53.01057987 11.30601001, 53.01052692 11.30609762, 53.01047995 11.30618769, 53.01043644 11.30628945, 53.01038574 11.30638664, 53.01034438 11.30649139, 53.01029273 11.30661147, 53.01024012 11.30673395, 53.01019177 11.30685523, 53.01014063 11.30698443, 53.01009017 11.30711324, 53.01003473 11.30723452, 53.00998011 11.30736523, 53.00992118 11.30750157, 53.00985962 11.30765401, 53.00980819 11.30779321, 53.00974741 11.30794016, 53.00968564 11.30806790, 53.00962749 11.30821757, 53.00955885 </coordinates> </LineString> </Placemark> <Placemark> <LineString> <coordinates> 11.31431881, 53.00327452 11.31442600, 53.00316499 11.31457737, 53.00307185 11.31475214, 53.00299654 11.31494770, 53.00292923 11.31513820, 53.00287706 11.31533833, 53.00282479 11.31555659, 53.00276933 11.31577585, 53.00270887 11.31598373, 53.00265331 11.31620412, 53.00259342 11.31641181, 53.00253835 11.31660326, 53.00248433 11.31680765, 53.00242762 11.31701214, 53.00237093 11.31720604, 53.00231792 11.31739188, 53.00225510 11.31753382, 53.00219089 11.31768032, 53.00211538 11.31780689, 53.00201929 11.31791473, 53.00191623 11.31801254, 53.00181014 11.31809001, 53.00169570 11.31817757, 53.00158015 11.31826034, 53.00147096 11.31833510, 53.00135814 11.31841490, 53.00123595 11.31850170, 53.00111844 11.31858933, 53.00100286 11.31867668, 53.00088660 11.31876021, 53.00076679 11.31884066, 53.00065943 11.31892388, 53.00054016 </coordinates> </LineString> </Placemark> <Placemark> <LineString> <coordinates> 11.31970742, 52.99858805 11.31981201, 52.99856593 11.31990618, 52.99854594 11.32000568, 52.99850666 11.32009895, 52.99845917 11.32018000, 52.99841361 11.32025323, 52.99836518 11.32031137, 52.99831737 11.32038279, 52.99827487 11.32043598, 52.99822660 11.32047941, 52.99817566 11.32052730, 52.99812815 11.32055113, 52.99807767 11.32053836, 52.99802143 11.32049526, 52.99795580 11.32043279, 52.99788692 11.32037434, 52.99780914 11.32030620, 52.99772865 11.32026512, 52.99764129 11.32020494, 52.99753296 11.32013957, 52.99741381 11.32007142, 52.99728311 11.32000209, 52.99714940 11.31992480, 52.99701494 11.31984346, 52.99688878 11.31975257, 52.99676292 11.31965195, 52.99663901 11.31952699, 52.99651955 11.31940690, 52.99639451 11.31926027, 52.99627237 11.31911080, 52.99616151 11.31895449, 52.99605194 11.31881894, 52.99595456 11.31867530, 52.99585519 11.31854306, 52.99577002 11.31841967, 52.99568415 11.31831113, 52.99561398 11.31823118, 52.99556387 11.31816665, 52.99552796 11.31813883, 52.99550064 11.31814481, 52.99546551 11.31817336, 52.99544134 11.31822685, 52.99542190 11.31830060, 52.99539660 11.31838314, 52.99536513 11.31850059, 52.99533632 11.31863428, 52.99529818 11.31878650, 52.99525841 11.31895767, 52.99521725 11.31911799, 52.99518246 11.31930723, 52.99515162 11.31950350, 52.99513324 11.31969132, 52.99511246 11.31990070, 52.99509428 11.32009997, 52.99508220 11.32029971, 52.99507274 11.32049641, 52.99505983 11.32070231, 52.99504528 11.32091436, 52.99502165 11.32112775, 52.99500118 11.32133645, 52.99495947 11.32154545, 52.99492500 </coordinates> </LineString> </Placemark> <Placemark> <LineString> <coordinates> 11.32573511, 52.99370198 11.32590847, 52.99359321 11.32606595, 52.99349514 11.32621603, 52.99339511 11.32638441, 52.99329120 11.32655718, 52.99317908 11.32671841, 52.99307634 11.32688822, 52.99296776 11.32704453, 52.99286296 11.32718819, 52.99276407 11.32735103, 52.99265918 11.32752607, 52.99255526 11.32771008, 52.99245307 11.32790471, 52.99235754 11.32810991, 52.99225712 11.32830498, 52.99216582 11.32852277, 52.99206550 11.32873649, 52.99196724 11.32896098, 52.99186937 11.32917025, 52.99177862 11.32936842, 52.99169241 11.32956864, 52.99160816 11.32977531, 52.99151646 11.32998615, 52.99141944 11.33020599, 52.99132150 11.33042249, 52.99122388 11.33063580, 52.99113717 11.33083220, 52.99104904 11.33098239, 52.99097563 11.33114769, 52.99090925 11.33130038, 52.99083349 11.33146130, 52.99076127 11.33161186, 52.99069305 11.33175406, 52.99062077 11.33188638, 52.99054527 11.33200920, 52.99046583 11.33212064, 52.99037700 11.33223094, 52.99028301 11.33231365, 52.99019016 11.33239008, 52.99009794 11.33245075, 52.99000743 11.33250499, 52.98991830 11.33256303, 52.98983152 11.33261065, 52.98975535 11.33265167, 52.98968592 11.33268733, 52.98962587 11.33272300, 52.98956977 11.33274723, 52.98952616 11.33276938, 52.98948715 11.33278055, 52.98945638 11.33277254, 52.98942208 11.33276101, 52.98939699 11.33272498, 52.98938395 11.33269367, 52.98936815 11.33266844, 52.98935656 11.33263108, 52.98934487 11.33260427, 52.98933330 11.33258266, 52.98931988 11.33256239, 52.98930265 </coordinates> </LineString> </Placemark> <Placemark> <LineString> <coordinates> 11.33269279, 52.98890683 11.33267546, 52.98889008 11.33266629, 52.98888269 11.33265420, 52.98887571 11.33264374, 52.98887308 11.33263811, 52.98887361 11.33263591, 52.98886834 11.33264492, 52.98885953 11.33264685, 52.98885814 11.33264685, 52.98885865 11.33264739, 52.98886474 11.33264642, 52.98887292 11.33263298, 52.98888140 11.33262472, 52.98888857 11.33262642, 52.98889559 11.33262823, 52.98890260 11.33261877, 52.98890634 11.33261476, 52.98890673 11.33261475, 52.98891170 11.33261443, 52.98891237 11.33260216, 52.98892090 11.33258932, 52.98892857 11.33258721, 52.98893477 11.33257688, 52.98893584 11.33258416, 52.98893514 11.33259139, 52.98893444 11.33259141, 52.98893444 11.33259141, 52.98893444 11.33259141, 52.98893896 11.33259141, 52.98893985 11.33259141, 52.98894043 </coordinates> </LineString> </Placemark> </Document> </kml>
Die Textdatei sieht folgendermaßen aus
0.000 0.89 11.30542990 53.01130095 28.99 82.7 8 0.80 24.25 -0.37 0.02 24.07 0.00 -6.722 0.94449 0.01457 68.6 9999.9 0 0 4.0 0.0570 -0.1360 0.00 0.00 0.0 0.0 0.0 0.0 0.490 2.18 11.30543542 53.01129314 29.21 -66.9 8 0.80 24.18 -0.38 -0.08 24.05 -0.08 -5.865 0.83050 0.01262 79.3 9999.9 0 0 4.0 0.1850 -0.1890 0.00 0.00 0.0 0.0 0.0 0.0 0.550 3.57 11.30543814 53.01128924 29.43 -67.4 8 0.80 24.12 -0.38 -0.12 24.03 0.00 -5.927 0.84552 0.01266 79.0 9999.9 0 0 4.0 0.3930 -0.0810 0.00 0.00 0.0 0.0 0.0 0.0 0.660 4.89 11.30544313 53.01128209 29.65 -67.1 8 0.80 24.06 -0.39 -0.13 24.02 -0.30 -5.983 0.85995 0.01268 78.9 -735.0 0 0 4.0 -0.0130 -0.1370 0.00 0.00 0.0 0.0 0.0 0.0 0.770 6.30 11.30544932 53.01127330 29.87 -66.9 8 0.80 24.02 -0.40 -0.12 24.05 -0.48 -6.238 0.90327 0.01312 76.2 6347.7 0 0 4.0 0.1480 -0.2520 0.00 0.00 0.0 0.0 0.0 0.0 0.880 7.64 11.30545604 53.01126371 30.09 -67.3 8 0.80 24.01 -0.40 -0.08 23.96 -0.69 -6.117 0.89220 0.01278 78.3 235.9 0 0 4.0 -0.0450 -0.2090 0.00 0.00 0.0 0.0 0.0 0.0 0.990 9.07 11.30546305 53.01125371 30.31 -67.1 8 0.80 24.02 -0.41 0.01 23.86 -1.75 -6.438 0.94596 0.01335 74.9 72.4 0 0 4.0 0.0160 -0.1890 0.00 0.00 0.0 0.0 0.0 0.0 1.100 10.50 11.30546951 53.01124402 30.28 -70.1 8 0.80 24.04 -0.41 -0.62 23.83 -3.12 -6.233 0.91498 0.01293 77.3 48.2 0 0 4.0 0.2680 -0.2060 0.00 0.00 0.0 0.0 0.0 0.0 1.200 11.84 11.30547502 53.01123502 30.25 -71.6 8 0.80 24.06 -0.41 -0.36 23.86 -3.42 -6.467 0.94844 0.01343 74.4 58.1 0 0 4.0 -0.0990 -0.2620 0.00 0.00 0.0 0.0 0.0 0.0 1.310 13.27 11.30548005 53.01122636 30.22 -71.9 8 0.80 24.08 -0.40 -0.48 23.96 -1.70 -6.746 0.98843 0.01402 71.3 100.4 0 0 4.0 -0.0050 -0.2310 0.00 0.00 0.0 0.0 0.0 0.0 1.420 14.70 11.30548484 53.01121787 30.19 -71.7 8 0.80 24.10 -0.40 -0.17 23.97 0.57 -6.651 0.97360 0.01384 72.3 199.5 0 0 4.0 0.1030 -0.2550 0.00 0.00 0.0 0.0 0.0 0.0
An dritter und vierter Stelle ist der Längen und Breitengrad zu sehen, dahinter steht die Geschwindigkeit.Die Messdatei ist natürlich ewig viel länger und besitzt ca 400 Zeilen.
Naja ich hab keine Ahnung wie man das am Besten macht und in welcher Sprache.
Hab evtl. an Matlab gedacht aber evtl geht es ja auch in C++ ?????.
Naja vielleicht weiß ja einer Rat.
Gruß Christian
-
natürlich geht das in c++ allerdings nur, wenn du davon ahnung hast.
matlab geht bestimmt auch. allerdings wird das xmlrel. schwierig werden dnek cih mal.
aber was ist eigentlihc genau dein problem? Das macht dir hier bstimmt keiner, vielleicht für entgeld ich würd mich dafür sogar anbieten
-
@Maxi:
Mein Problem ist, dass ich ein Beispiel benötige, indem so etwas erklärt wird, wie man so etwas macht. Zum Beispiel in C++ .
Ja, ich kann nicht programmieren, aber ich kann mir anhand eines Beispiels so einiges zusammenreimen und mir den Kram dann selber schreiben.
Ich habm halt gedacht dass das hier ein Forum ist, in dem man sich von versierten Leuten die Ahnung von der Materie haben ein paar Tips geben lassen kann und die einem an Hand eines Beispiels mal weiterhelfen können.
Wenn dies nicht der Fall sein sollte und jeder gleich Schotter sehen will bin ich hier wohl falsch.
-
ne, ich natürlich nicht so, dass jeder gleich schotter sehen will Is hier ja keine Jobbörse. Nur wenn jemand daher kommt und sagt "Guckt ma das will ich machen, hab aber keine ahnung davon", naja... egal.
Also wenn du nciht programmieren kannst, musst du dir ein tutrial angucken, wahrschienlcih mehr als eins.
Dann die datei zeilenweise einlesen, beim leerzeichen trennen, und dann mittels einer XML-Lib die ausgabedatei erstellen. zB mit tinyxml. Allerdings wird das ganze ziemlich schwierig werden, wenn du noch gar keine Ahnung hast.
Allerdings ist es auch immer ziemlich schwierig, auf solche Frage zu antworten. Besser ist es, wenn du konkrete Fragen stellst. zB wie öffne ich die Datei? (ok, siehe FAQ, google, tutorial usw.)
-
@ Maxi,
ich wollte hier auch keinen persönlich angreifen.
Also ich muss halt wie oben erwähnt aus der Messdatei die Koordinaten rausfischen, bei denen die Bedingung der Geschwindigkeit passt.Das heißt doch, dass ich in der Messdatei an den Stellen, an denen die Geschwindigkeit steht jedesmal in jeder Zeile eine Abfrage mache, ob sie die Bedingung erfüllt. Wenn sie die Bedingung erfüllt, soll das Programm die jeweiligen Koordinaten ,die die beiden Spalten vor der Geschwindigkeit darstellen ausgeben und in die KML Datei so einbinden wie in dem Beispiel zu sehen ist.Und jedesmal wenn die Bedingung nicht gilt, soll so lange weitergesucht werden, bis die Bedingung wieder erfüllt wird. Ich muss die Koordinatenhäppchen dann eben unterteilen und sie dürfen nicht alle untereinanderstehend ausgegeben werden sondern so wie im Beispiel.
Ich weiß, das ist alles so lapidar daher gesagt, ich würde auch leiber das Fahrzeug in CAD konstruieren als so ein Programm zu schreiben, aber das ist im Moment ebne nicht verlangt
Vielleicht gibt es ja eine einfache Art der Lösung.
Ich freue mich auf jedenfall über jede Unterstützung
-
ja, also wie gesagt. dsa ganze ist nicht schwer. aber wenn du nicht genau sagst, was dien problem ist, kann man dir auch nicht helfen.
Lad dir einen Compiler runter, zB Devcpp, der dürfte dafür reichen, oder gleich vc2005express.
Mein vorgehen wäre so, wenn die Datei nicht zB 100MB poder so übersteigt:Ich lese die Datei zeilenweise ein. Aus jeder Zeiule extrahiere ich die geschwindigkeit und ordne die Zeile einer kategorie zu. Jede Kategroei hat ein array aus den koordinaten. dann würde ich direkt die koordinaten in die jeweiliige kategorie packen.
Wenn du dann die ganze Datei ausgelesen hast, kannst du mittels einer lib für xml zB tinyxml oder libxml2 deine xml-datei erstellen.