Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Gibts eine schnelle TStringList mit Spalten? (https://www.delphipraxis.net/154488-gibts-eine-schnelle-tstringlist-mit-spalten.html)

DeddyH 13. Sep 2010 10:58

AW: Gibts eine schnelle TStringList mit Spalten?
 
Kann ja mal passieren ;)

moelski 13. Sep 2010 10:58

AW: Gibts eine schnelle TStringList mit Spalten?
 
Moin !

Und ich denke damit habe ich auch ein großes Problem : NameValueSeparator ...

Denn ich muss den Trenner angeben. Und genau das will ich nicht.

Bsp: Meine Rohdaten sind $GP12,23,34;35,6<CR>
Wenn jetzt der NameValueSeparator auf ; stehen würde ... Dann wird das kaum gut gehen.

Brainstalker 13. Sep 2010 11:02

AW: Gibts eine schnelle TStringList mit Spalten?
 
Ich glaub ich hatte da nicht extra ne SaveToFile funktion drin, da ich die nur intern verwendet habe. Ansonsten sollte es aber auch nicht allzu schwer sein eine SaveToFile Funktion zu schreiben.
Wie es mit der Performance aussieht weiß ich allerdings nicht. Bietet die TObjectList eigentlich eine SaveToFile? Oder brauchst du die gespeicherte Datei als CSV?

moelski 13. Sep 2010 11:09

AW: Gibts eine schnelle TStringList mit Spalten?
 
Zitat:

Bietet die TObjectList eigentlich eine SaveToFile?
Nicht das ich wüsste.

Zitat:

Oder brauchst du die gespeicherte Datei als CSV?
Is mir voll schnuppe wie die Daten auf der Platte landen. Hauptsache ich kann sie wieder zurücklesen :)

alzaimar 13. Sep 2010 11:14

AW: Gibts eine schnelle TStringList mit Spalten?
 
Welches Interface sollte denn deine Tabellenkomponente haben?
Es ist bestimmt nicht schwer, die TStringlist-Klasse um die zusätzlichen Funktionen zu erweitern.
Ich kann mir das so vorstellen:
Delphi-Quellcode:
TMoelskiSeineStringList = Class (TStringlist)
public
  Property Header[Row : Integer] : String;
  Property RawData[Row, Col : Integer] String;
End;
Zusammen mit einer einfachen Explode-Funktion sollte eine generischen Implementierung nichts im Wege stehen: Ich schätze den Aufwand auf 10-20 Zeilen.

himitsu 13. Sep 2010 11:16

AW: Gibts eine schnelle TStringList mit Spalten?
 
Zitat:

Zitat von alzaimar (Beitrag 1049222)
Es ist bestimmt nicht schwer, die TStringlist-Klasse um die zusätzlichen Funktionen zu erweitern.

Jupp, z.B. auch über die Class-Helper, falls man keine neue Klasse möchte.

Und zum Aufteilen gibt es unzählige Explodefunktionen.
(wobei da auch schnell was kleines selbstgebastelt ist)

alzaimar 13. Sep 2010 13:23

AW: Gibts eine schnelle TStringList mit Spalten?
 
Zitat:

Zitat von himitsu (Beitrag 1049224)
Jupp, z.B. auch über die Class-Helper, falls man keine neue Klasse möchte.

...Das wollte ich nicht vorschlagen, weil wir ja nicht die TStringList-Klasse erweitern, sondern eine gänzlich neue Klasse erstellen wollen/sollten/könnten.

p80286 13. Sep 2010 13:25

AW: Gibts eine schnelle TStringList mit Spalten?
 
Wenn ich richtig gelesen habe, soll am besten auch noch ein Index mitgeliefert werden.
Auf welche "Spalte(n)" ?
So sehr ich dagen bin, sich für 1000 Adresssätze gleich eine Embedded-DB zuzulegen, hier wäre dies wohl angebracht.
Zitat:

Zitat von moelski (Beitrag 1049213)
Und ich denke damit habe ich auch ein großes Problem : NameValueSeparator ...

Denn ich muss den Trenner angeben. Und genau das will ich nicht.

Bsp: Meine Rohdaten sind $GP12,23,34;35,6<CR>
Wenn jetzt der NameValueSeparator auf ; stehen würde ... Dann wird das kaum gut gehen.

Ach Ja ? und warum nicht? wenn wir mal von Unicode absehen, eins von den 250 Zeichen sollte doch wohl als "Fíeldseperator" brauchbar sein.



Grüße
K-H

moelski 13. Sep 2010 14:06

AW: Gibts eine schnelle TStringList mit Spalten?
 
Zitat:

wenn wir mal von Unicode absehen, eins von den 250 Zeichen sollte doch wohl als "Fíeldseperator" brauchbar sein.
Nein. Was da an Rohdaten ankommt kann alles mögliche sein. Da bleibt eben kein Trenner über.

Zitat:

Wenn ich richtig gelesen habe, soll am besten auch noch ein Index mitgeliefert werden.
Auf welche "Spalte(n)" ?
ein Index auf die Reihen würde genügen.

Zitat:

Embedded-DB
Ist aber vermutlich nicht so performant wie eine Lösung mittels einfacher Liste ...

p80286 13. Sep 2010 15:00

AW: Gibts eine schnelle TStringList mit Spalten?
 
Zitat:

Zitat von moelski (Beitrag 1049278)
Zitat:

wenn wir mal von Unicode absehen, eins von den 250 Zeichen sollte doch wohl als "Fíeldseperator" brauchbar sein.
Nein. Was da an Rohdaten ankommt kann alles mögliche sein. Da bleibt eben kein Trenner über.

Dann sollten wir uns ganz schnell von Strings verabschieden,und zu einem Binären Format wechseln. (und sei es ein mißbrauchter Shortstring)

Zitat:

Zitat von moelski (Beitrag 1049278)
Zitat:

Wenn ich richtig gelesen habe, soll am besten auch noch ein Index mitgeliefert werden.
Auf welche "Spalte(n)" ?
ein Index auf die Reihen würde genügen.

Im allgemeinen wird der Index aus den Daten gebildet, nach denen gesucht wird. Z.B. Name, Erfassungsdatum etc.
Die "Reihennr / Satznummer" kann man zwar auch indizieren, aber bei einer Suche nach Inhalten wäre das nicht sehr zielführend.

Zitat:

Zitat von moelski (Beitrag 1049278)
Zitat:

Embedded-DB
Ist aber vermutlich nicht so performant wie eine Lösung mittels einfacher Liste ...

Um eine DB zu schlagen, muß Du eine DB-Ähnliche Struktur erstellen!
Alleine das Erstellen dieser Struktur, (wie auch immer sie konkret aussieht) fällt im täglichen Betrieb der DB fort. Da hast Du nur noch eine Chance mit handoptimierten Algorithmen und viiieel Assembler. Ob das den Aufwand lohnt?

Gruß
K-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:27 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz