| |
VB & DatenbankenTextdatei als Datenbank | | | Autor: Rene Rose | Datum: 23.09.06 11:09 |
| Hallo User!
Ich habe Börsenkursdaten als Textdateien vorliegen. Die Daten liegen dabei in einer Spaltenstruktur vor. Ich lese die Daten in eine Tabelle ein und zeige diese dann in einem Datagrid an. Das Ziel soll sein, die Daten an hand der zeitlichen abfolge zu sortieren. Jede Datei enthält Daten von mindestens 6 Kalendermonaten, die auch über dem Jahreswechsel verteilt sein können.
Mein geplantes Vorgehen:
Zerlegen der Datei in einzelne Kalenderjahre
Zerlegen jedes kalenderjahres in einzelne Monate
Zerlegen jedes einzelnen MOnats in Tage
Sortieren jedes einzelnen Tages in zeitlicher Abfolge
Um mir aufwendige Arrayoperationen zu ersparen, war meine Idee, das zerlegen mit Hilfe von sql Abfragen zu erledigen, ebeso wie die Sortierung. Nun fehlt mir der ansatz, wie ich die Daten aus der Tabelle, wie eine Datenbank behandeln kann und Abfragen durchführen kann.
Vielleicht kann mir jemand einige Tipps zu groben Vorgehen geben. Die Dokumentation in Visual Studio ist zwar super umfangreich, jedoch fehlt mir soetwas wie ein grober Leitfaden.
Vielen Dank! | |
Re: Textdatei als Datenbank | | | Autor: bfritz | Datum: 24.09.06 19:37 |
| Hallo Rene Rose
Stelle einen Auszug aus den Textdateien ins Forum und es wird dir sicher
einer helfen.
PS: Mit melcher Datenbank arbeitest du, mit welchem Datenbankzugriff arbeitest du???
m.f.G. bfritz | |
Re: Textdatei als Datenbank | | | Autor: Rene Rose | Datum: 25.09.06 07:46 |
| Hallo Fritz!
Ich arbeite mit keiner Datenbank. Ich habe die Daten als Textdateien vorliegen. Die Börse liefert große Zip Dateien, aus denen anschließend die einzelnen Wertpapiere aussortiert werden müssen. Ist das geschahen, erzeuge ichn folgendes Format:
2004-04-21T09:00:19.920;2815;111
2004-04-21T09:00:20.560;2814;50
2004-04-21T09:00:20.560;2815;2
2004-04-21T09:00:21.370;2815;10
Du siehst, die Daten liegen Zeilenweise vor, jedes Geschäft eine Zeile mit Datum und Zeit, inkl. Millisekunden, sowie Kurswert und Stückzahl. das Problem ist nun, dass die Sortierung nicht immer der zeitlichen korrekten Reihenfolge entspricht. Anscheinend werden hier hunderte von Zeilen verschoben abgelegt. Genau das muss ich ändern. Das Problem liegt auch in den großen Datenmengen. Eine Datei enthält bis zu 100 MB. Jedes dieser Instrumente (Futures) wird über mehrere Monate, verteilt in einem oder zwei Kalenderjahren gehandelt.
Ich habe jetzt schon folgende Vorbereitungen getroffen:
Mein Programm erzeugt eine Collection, die zwei mehrdimensionale Arrays enthält. Jedes Array hat 12 und 31 Dimensionen. Über die Datumsangabe in den Kursdaten kann ich so die Daten schnell den einzelnen Kalendertagen eines jeden Monats zuordnen. Jeder Kalendertag ist wiederum eine Collection, die nun alle Kursdaten dieses Tages enthält. das ganze geht recht flink und ist in 30-45 Sekunden einsortiert.
Die Aufgabe ist nun, jede Tagescollection zeitlich korrekt zu sortieren und zwar nach:
Stunde, Minute, Sekunde, Millisekunde
Hier scheitere ich derzeit, weil mir ein Konzept fehlt. Kann ich denn eine Collection oder eine daraus erzeugte DataTable, wie eine Datenbank behandeln und vielleicht mit sql sortieren? Früher hatte ich mal eine einfache Variante davon in Acess geschrieben. Ich habe die einzelnen Handelstage via Abfrage getrennt und diese dann mit sql sortiert. Wie mache ich das nun in VB.Net???
Vielen Dank schon einmal für die Hilfe | |
Re: Textdatei als Datenbank | | | Autor: wb-soft | Datum: 25.09.06 10:03 |
| Hi!
Für .NET bist du hier im falschen Forum.
Suche nach "extended properties" und "schema.ini". Damit findest du die Verwendung einer Textdatei als DB unter VB6/ADO. Vielleicht hilft es dir auch bei .Net.
mfg
WB | |
Re: Textdatei als Datenbank | | | Autor: bfritz | Datum: 27.09.06 09:36 |
| Hallo Rene Rose
Du könntest die Daten in eine temporäre Tabelle einlesen. Dann hast du alle
SQL-Möglichkeiten zur Verfügung.
Ich habe mit "SQLite" folgenden Test durchgeführt:
1. Erstellen einer temporären Tabelle mit 4 Spalten
2. Füllen der Tabelle mit 300000 Datensätzen(=ca 10MB Datenmenge)
3.Öffnen der Tabelle und sortieren der Datensätze nach Datum und Zeitspalte
4. Ausgabe aller 300000 Datensätze auf Platte
Gesamter Zeitaufwand dabei 23-30 Sekunden.
m.f.G. bfritz | |
Re: Textdatei als Datenbank | | | Autor: Rene Rose | Datum: 27.09.06 09:44 |
| Hallo!
Vielen Dank für die Informationen! Die Performancedarstellung klingt beeindruckend. jetzt muss ich nur noch verstehen, wie genau vorzugehen ist.
Eine Textdatei in eine Tabelle einlesen ist ja kein problem. aber wie kommt dieses SqLite ins Spiel? Die Dokumentation auf der Webseite von SQLite ist ja eher dürftig. | |
Re: Textdatei als Datenbank | | | Autor: Rene Rose | Datum: 27.09.06 10:29 |
| Gut, vielen vielen Dank! das reicht für ein Wochenende!
Viele Grüße von Rene | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
vb@rchiv CD Vol.6 vb@rchiv Vol.6
Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
Online-Update-Funktion Entwickler-Vollversionen u.v.m.Jetzt zugreifen Tipp des Monats TOP! Unser Nr. 1
Neu! sevDataGrid 3.0
Mehrspaltige Listen, mit oder ohne DB-Anbindung. Autom. Sortierung, Editieren von Spalteninhalten oder das interaktive Hinzufügen von Datenzeilen sind ebenso möglich wie das Erstellen eines Web-Reports. Weitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|