Delphi-PRAXiS
Seite 4 von 8   « Erste     234 56     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   [Optimiert] Explode Prozedur - Reloaded (Ersatz für CodeLib) (https://www.delphipraxis.net/82268-%5Boptimiert%5D-explode-prozedur-reloaded-ersatz-fuer-codelib.html)

grenzgaenger 23. Feb 2008 14:59

Re: [Optimiert] Explode Prozedur - Reloaded (Ersatz für Code
 
Zitat:

Zitat von stoxx
wir haben solche CSV Files nicht :-)

tja, wenn du nicht viel mit CSV arbeitest... dann tut es wohl die funktion auch für dich...

stoxx 23. Feb 2008 15:20

Re: [Optimiert] Explode Prozedur - Reloaded (Ersatz für Code
 
Zitat:

tja, wenn du nicht viel mit CSV arbeitest... dann tut es wohl die funktion auch für dich..
tss .. immer diese, "ich bin wichtiger Mentalität"
man, man ... nein, unsere CSV Files sind sogar größer als Deine. (mehrere 100 MB und ingsesammt soviele dass mehrere Gigabyte verarbeitet werden müssen)

Und der CSV Reader, den wir nun gebastelt haben, ist sehr schick uns wahnsinnig schnell.
Es steht Dir doch frei, die Funktion so zu verändern, wie Du möchtest. Wo liegt Dein Problem?

Elvis 23. Feb 2008 15:53

Re: [Optimiert] Explode Prozedur - Reloaded (Ersatz für Code
 
Zitat:

Zitat von stoxx
Zitat:

tja, wenn du nicht viel mit CSV arbeitest... dann tut es wohl die funktion auch für dich..
tss .. immer diese, "ich bin wichtiger Mentalität"
...
Wo liegt Dein Problem?

Sein Problem ist wohl das von sehr vielen anderen auch: Er wird wohl des öfteren mit (MSFT-) Software zu tun gehabt haben, die behauptet CSV lesen oder schreiben zu können, in Wirklichkeit aber etwas total anderes macht...
Das was du da hast ist nämlich keine Funktion zum Lesen von CSV-Dateien, da diese ein Standard sind, zu dem nunmal auch die Quotes gehören.
Das mag für dich speziell keinen Unterschied machen ( :) ), da du da vllt nur Zahlen hast.
Aber vllt kannst du das verkniffene Murren von Bernhard nun nachvollziehen?

stoxx 23. Feb 2008 16:07

Re: [Optimiert] Explode Prozedur - Reloaded (Ersatz für Code
 
Delphi-Quellcode:
Aber vllt kannst du das verkniffene Murren von Bernhard nun nachvollziehen?
Im Moment noch nicht. Wie ich ihn verstanden habe, sind doch die störenden Zeichen nur Hochkommas am Anfang und Ende eines Strings.
Man würde also einfach mit if prüfen, ob das der Fall ist und ändert die SetString Funktion noch ein bisschen, dann eignet sich die explode Funktion auch zum einlesen solcher CSV Files.

(Die Abkürzung CSV steht für Character Separated Values)

Wenn also noch Hochkommas oder anführungszeichen drin stehen .. und man die nicht haben will. Müssen sie also noch raus. Die CSV Datei kann ja nun nix dafür, dass sie (wahrscheinlich ohne Header) so komisch geschrieben wurde .....

grenzgaenger 23. Feb 2008 17:04

Re: [Optimiert] Explode Prozedur - Reloaded (Ersatz für Code
 
Zitat:

Zitat von stoxx
Delphi-Quellcode:
Aber vllt kannst du das verkniffene Murren von Bernhard nun nachvollziehen?
Im Moment noch nicht. Wie ich ihn verstanden habe, sind doch die störenden Zeichen nur Hochkommas am Anfang und Ende eines Strings.
Man würde also einfach mit if prüfen, ob das der Fall ist und ändert die SetString Funktion noch ein bisschen, dann eignet sich die explode Funktion auch zum einlesen solcher CSV Files.

(Die Abkürzung CSV steht für Character Separated Values)

Wenn also noch Hochkommas oder anführungszeichen drin stehen .. und man die nicht haben will. Müssen sie also noch raus. Die CSV Datei kann ja nun nix dafür, dass sie (wahrscheinlich ohne Header) so komisch geschrieben wurde .....

tzzz, tzz. schicke funktion, für mich total unbrauchbar! deswegen halt ich mich auch mit dem teil nicht auf. BTW CSV steht für comma sepaprated file, im deutschsprachigen raum ist halt dsa comma meist ein semikolon.

die anführungszeichen stöhren mich nicht im geringsten. im gegenteil, die quoten einen textstring. in dessen keine interpretation des delimiters stattfinden darf. falls doch, ist die funktion falsch. der delimiter kann je nach land unterschiedlich sein, z. b. "", '', <>, ><, <<>>, >><<, ...

aber egal, noch 'n schönen tag.
GG

//EDIT: hier noch 'n link zum CSV Format link

stoxx 23. Feb 2008 17:28

Re: [Optimiert] Explode Prozedur - Reloaded (Ersatz für Code
 
Zitat:

die anführungszeichen stöhren mich nicht im geringsten. im gegenteil, die quoten einen textstring. in dessen keine interpretation des delimiters stattfinden darf. falls doch, ist die funktion falsch. der delimiter kann je nach land unterschiedlich sein, z. b. "", '', <>, ><, <<>>, >><<, ...

aber egal, noch 'n schönen tag.
boah ... sowas aggressives .. wer ist Dir denn über die Schuhe gelaufen.
Nein, die Funktion ist natürlich nicht falsch, die macht genau das, was sie tun soll. Einen String trennen, der getrennt ist, durch ein oder mehrere Zeichen! Und wenn alles mit "bla" getrennt ist, tut sie das auch!
Anschauen und ausprobieren würde vielleicht helfen, anstatt rumzumeckern. In der Funktion gibt es überhaupt kein problem, außer dass sie noch um Faktor 2 beschleunigt werden kann, wenn man die rückgabe noch anders gestaltet ...
(mit derselben gewünschten Funktionalität)
Eventuell müsste man die Strings selber erzeugen und die TList hinter TStrings selber befüllen, dass nicht noch einmal speicher kopiert wird, wenn man denn unbedingt TStrings als Rückgabe braucht, geht aber auch anders ...

Elvis 23. Feb 2008 17:40

Re: [Optimiert] Explode Prozedur - Reloaded (Ersatz für Code
 
Zitat:

Zitat von stoxx
boah ... sowas aggressives .. wer ist Dir denn über die Schuhe gelaufen.

Und er benutzt einfach den Avatar von Bernhard Geyer. :shock:
Er hat irgendwo schon recht, aber so tut das nicht Not... :roll:

alzaimar 23. Feb 2008 23:26

Re: [Optimiert] Explode Prozedur - Reloaded (Ersatz für Code
 
Zitat:

Zitat von grenzgaenger
BTW CSV steht für comma sepaprated file, im deutschsprachigen raum ist halt dsa comma meist ein semikolon.

. Genauergesagt handelt es sich um das 'Listentrennzeichen' in den internationalen Systemeinstellungen.
Zitat:

Zitat von grenzgaenger
...falls doch, ist die funktion falsch. der delimiter kann je nach land unterschiedlich sein, z. b. "", '', <>, ><, <<>>, >><<, ...

Es handelt sich hier nicht um einen CSV-Parser, sondern um einen Ersatz für 'Explode'. Wenn Dir das nicht reicht, dann prüfe nach dem Erkennen des nächsten Strings einfach, ob das Zeichen ein '"' ist. Wenn ja, suchst Du mit meiner FastPos-Routine das nächste '"', stellst sicher, das es nicht escpaped ist (hua, was für ein Deutsch), und extrahierst dann.

Aber nochmal. Niemand hat behauptet, das die csExplode-Routine mit CSV klar kommt, also hört auf mit euren Zickereien. Man kommt sich ja vor wie auf einem Mädcheninternat. :mrgreen:

stoxx 24. Feb 2008 12:45

Re: [Optimiert] Explode Prozedur - Reloaded (Ersatz für Code
 
Delphi-Quellcode:
In einer QSearch-Version war der Fehlerteufel drin. Ich hoffe, das das bei der hier nicht der Fall ist.
die korrigierte Variante von QPosEX in Pascal und nicht ASM würde mich äußerst stark interessieren :-)
Wäre das möglich? :-) .. Vielen Dank !


(Function QPosEx(SearchFor, SearchIn: String; Start: integer): integer;)

mimi 24. Feb 2008 12:46

Re: [Optimiert] Explode Prozedur - Reloaded (Ersatz für Code
 
Zitat:

enn Dir das nicht reicht, dann prüfe nach dem Erkennen des nächsten Strings einfach, ob das Zeichen ein '"' ist
Es währe aber trozdem Toll wenn die Funktion das unterstützen könnte. Das muss ja nix mit CSV zu tun haben.
Sowas brauche ich gelegendlich mal. Darum habe ich mir eine eigne Funktion dafür geschrieben. Die aber wahrscheinlich viel langsamer ist als deine....

Evlt. teste ich mal deine Funktion unter Lazarus. Weil ich gerne Texte Parse die so aufgebaut sind:
<fg="wert">text</fg>
Im Moment mache ich das mit Pos und PosExt....

Aber wenn das deine Funktion schneller kann, könnte ich ja mal schauen ob ich darauf umsteigen kann.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:08 Uhr.
Seite 4 von 8   « Erste     234 56     Letzte »    

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