Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Jedi-CSV Problem (https://www.delphipraxis.net/78060-jedi-csv-problem.html)

Techcrawler 28. Sep 2006 13:12


Jedi-CSV Problem
 
Ich benutze die JvCsvDataSet Komponente aus dem Jedi-Projekt.
Nun stoße ich dabei an ein Problem.
Ich lese eine CSV Datei mit Kommentarfeldern aus, diese Felder sind ca. 0-400 Zeichen lang.
Ich habe über den OI Komponente dem betreffenden Feld die Länge 400 zugewiesen.
FieldDefs.Feld.Size=400
Nun liest Jedi aber nur knappe 89 Zeichen ein (sind mal mehr, mal weniger), aber jedenfalls nicht die kompletten 400 Zeichen!
Woran liegt das und vor allem: Wie bekomme ich nun alle Zeichen in das Feld???
Bitte helft mir...

timog 28. Sep 2006 13:33

Re: Jedi-CSV Problem
 
Welchen FieldType hast Du denn genommen? Geht es auch nicht mir ftMemo oder ftWideString?

Grüße

Timo

mkinzler 28. Sep 2006 13:42

Re: Jedi-CSV Problem
 
Wie sehen diese Kommentar aus? sind diese quotiert?
Schon mal mit einer alternativen CSV-Komponenet versucht?

Techcrawler 29. Sep 2006 07:03

Re: Jedi-CSV Problem
 
Zitat:

Zitat von timog
Welchen FieldType hast Du denn genommen? Geht es auch nicht mir ftMemo oder ftWideString?

Zuerst hatte ich ftString, Size 80 -> den habe ich dann auf 400 geändert = lief nicht
Nun habe ich ftMemo, ftWideMemo und ftWideString auch probiert, selber effekt.
Merkt sich Jedi evtl. die Starteinstellung, wenn die kompo auf die Form ziehe?
Kommt mir manchmal so vor...

Techcrawler 29. Sep 2006 07:04

Re: Jedi-CSV Problem
 
Zitat:

Zitat von mkinzler
Wie sehen diese Kommentar aus? sind diese quotiert?
Schon mal mit einer alternativen CSV-Komponenet versucht?

Nein, keine quotes, die einträge im csv sind per ; getrennt, in den Strings kommen keine ; vor.
Wenn du eine alternative kompo kennst, die möglichst frei ist, immer her damit.

Techcrawler 29. Sep 2006 07:15

Re: Jedi-CSV Problem
 
Habe es just im Debugger festgestellt.
Ich setze also im OI die Eigenschaft eines Feldes auf Size=400
Dann, zur Sicherheit, mache ich das gleiche nochmal kurz bevor die Komponente verwendet wird.
Und siehe da, während der Ausführung steht im Debugger csvInteresse (ist das Feld).Size=80 !!!
Aha, aber warum????? Bug in Jedi?

wfoertsch 29. Sep 2006 07:36

Re: Jedi-CSV Problem
 
Zitat:

Zitat von Techcrawler
Habe es just im Debugger festgestellt.
Ich setze also im OI die Eigenschaft eines Feldes auf Size=400
Dann, zur Sicherheit, mache ich das gleiche nochmal kurz bevor die Komponente verwendet wird.
Und siehe da, während der Ausführung steht im Debugger csvInteresse (ist das Feld).Size=80 !!!
Aha, aber warum????? Bug in Jedi?


hi,

sollte es doch nen bug sein (sourcen hast du ja) kannst du den auch im bugtracker eintragen ...
Bugtracker

gruss wolle

wfoertsch 29. Sep 2006 07:39

Re: Jedi-CSV Problem
 
Zitat:

Zitat von wfoertsch
Zitat:

Zitat von Techcrawler
Habe es just im Debugger festgestellt.
Ich setze also im OI die Eigenschaft eines Feldes auf Size=400
Dann, zur Sicherheit, mache ich das gleiche nochmal kurz bevor die Komponente verwendet wird.
Und siehe da, während der Ausführung steht im Debugger csvInteresse (ist das Feld).Size=80 !!!
Aha, aber warum????? Bug in Jedi?


hi,

sollte es doch nen bug sein (sourcen hast du ja) kannst du den auch im bugtracker eintragen ...
Bugtracker

gruss wolle

der Bug ist schon im tracker drinnen

gruss wolle

Techcrawler 29. Sep 2006 07:59

Re: Jedi-CSV Problem
 
Hey danke, das hat mir geholfen.
Habe einfach die Quellen geändert (von 80 auf 400) und schon läuft es problemlos.
Gemäß der MPL, die geänderten 4 Zeilen in JvCvsData.pas:
Delphi-Quellcode:
162: DEFAULT_CSV_STR_FIELD = 400;
2470: FieldLen := 400; // default.
2493: CsvFieldOption := Copy(CsvFieldOption, Pos1 + 2, 400);
2498: CsvFieldOption := Copy(CsvFieldOption, Pos1 + 1, 400);

holliesoft 29. Sep 2006 09:54

Re: Jedi-CSV Problem
 
Hallo,

ich hatte dasselbe Problem, habe es aber so gelöst wie es im Kommentar zum Bugtracker-Eintrag steht:

Zitat:

[...]
please read the top of the source files, it is CLEARLY described here that you have to set the length of the field in the header row if you have one as it will overwrite what is defined at design time in the FieldDefs property. In your case, do this:

C,D:$250,E,F
Also schau Dir mal das Property CsvFieldDef an...

Gruß
Patrick


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:17 Uhr.

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