AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte CSV-Reader. Schnelles lesen von CSV-Dateien

CSV-Reader. Schnelles lesen von CSV-Dateien

Ein Thema von alzaimar · begonnen am 11. Mär 2008 · letzter Beitrag vom 28. Nov 2017
Antwort Antwort
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.811 Beiträge
 
Delphi 12 Athens
 
#1

AW: CSV-Reader. Schnelles lesen von CSV-Dateien

  Alt 3. Jul 2014, 12:33
Eigentlich geht der Code von PChar als einzelnem Zeichen aus. Unter den Delphis ab...ähm...2009? ist das nunmal PWideChar und nicht PAnsiChar. Eventuell sollte die "Bytigkeit" von Zeichen als weiterer Parameter hinzugefügt werden (was den Code nicht wirklich verschlanken würde). Wenn man aber seinen Anwendungsfall genau kennt, dürfte ein explizites Ersetzen sämtlicher PChar durch PAnsiChar die ursprüngliche ANSI-Funktionalität gewährleisten.

Sherlock
(für den dieses "Problem" nur wieder zeigt wie unsinnig es ist einem "Standard"-Typen von Version zu Version andere Basistypen zu verpassen)
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#2

AW: CSV-Reader. Schnelles lesen von CSV-Dateien

  Alt 3. Jul 2014, 12:44
Grob gesehen, fast alle '1' mit 'OneChar' und alle '2' mit 'TwoChar' ersetzen, wobei die beiden Symbole entweder Konstanten sind, die über die Compilerversion mit 1/2 oder 2/4 vorbelegt werden, oder eben als Properties.
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.811 Beiträge
 
Delphi 12 Athens
 
#3

AW: CSV-Reader. Schnelles lesen von CSV-Dateien

  Alt 3. Jul 2014, 12:47
Gnah, in der Tat! Hab doch echt beim groben drüberfliegen ... aus großer Höhe... die 1en und 2en weitestgehend übersehen und mich am PChar festgebissen. Insofern ist es sogar vermutlich recht elegant lösbar.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
roadrunner-S51

Registriert seit: 28. Mai 2010
53 Beiträge
 
Delphi 2009 Professional
 
#4

AW: CSV-Reader. Schnelles lesen von CSV-Dateien

  Alt 3. Jul 2014, 12:48
Vielen Dank erstmal!
Ich habe nun alle PChar durch PAnsiChar ersetzt, ebenso die Char und Strings. Nun kann ich statt der viereckigen Kästschen schonmal etwas sinnvollere Werte einlesen.

Das einzige was ich noch nicht ganz verstehe ist, dass beim allerersten Element das ich aus der csv-Datei auslese, die letzten beiden Zeichen fehlen. Also z.B.

Aufbau csv-Datei:
10a2034;3269400;1;3;70;04.07.2013;3;2;70;04.07.201 3;6;2;70;04.07.2013;8;2
10a2075;3138127;2;2;70;05.06.2013;12;2;70;11.06.20 13;303;2;0;01.01.1970;0;0
10a2015;3107207;3;3;70;13.06.2013;25;2;70;13.06.20 13;70;2;70;13.06.2013;149;2
10a2058;3127735;4;3;70;08.05.2013;143;2;70;08.05.2 013;147;2;70;17.05.2013;26;2
10a2058;3127735;5;3;70;05.06.2013;20;2;70;05.06.20 13;28;2;70;05.06.2013;177;2
10a2017;3328115;6;3;70;27.06.2013;58;2;70;27.06.20 13;68;2;70;27.06.2013;76;2


Inhalt des ersten gelesenen Elements: 10a20

Alle weiteren Zeilen werden korrekt eingelesen. Hat jemand eine Idee woran das liegt?

OK, hat sich erledigt. Die Zeichen sind der BOM. Hatte vorher noch nie damit zu tun... Werde ich einfach aus dem String entfernen und gut ist.

Vielen Dank für eure Hilfe!

Geändert von roadrunner-S51 ( 3. Jul 2014 um 14:19 Uhr)
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#5

AW: CSV-Reader. Schnelles lesen von CSV-Dateien

  Alt 3. Jul 2014, 16:23
Das, was Du da einliest, ist der BOM. Das ist so bei Unicode Dateien.
  Mit Zitat antworten Zitat
HPB

Registriert seit: 2. Jun 2008
365 Beiträge
 
Delphi XE7 Professional
 
#6

AW: CSV-Reader. Schnelles lesen von CSV-Dateien

  Alt 6. Okt 2015, 15:10
Guten Tag Delphianer,
ich habe beim Einlesen der Daten auch nur China-Zeichen.
Wie "divBy0" auch.
Kann jemand genau erklären, was, in welcher Zeile, geändert werden soll,
damit die Daten korrekt eingelsen werden??
Die Unit ist ja rasend schnell und ich würde sie gerne benutzen.
Mit Gruß
HPB
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#7

AW: CSV-Reader. Schnelles lesen von CSV-Dateien

  Alt 7. Okt 2015, 06:40
Das Problem ist hier, das mit Pointerarithmetik gearbeitet wird, d.h. aus dem Abstand zweier PChar wird auf eine Länge geschlossen. Du solltest den Debugger verwenden, um den Code zu verstehen und dann die Zeilen entsprechend anpassen.

Im Code steht ja drin, das er so banal ist, das ein Copyright nicht lohnt.
  Mit Zitat antworten Zitat
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.245 Beiträge
 
Delphi 2007 Architect
 
#8

AW: CSV-Reader. Schnelles lesen von CSV-Dateien

  Alt 21. Jun 2017, 12:51
Hi,
erst mal möchte ich sagen das es wirklich wirklich schnell ist. Allerdings ist mir eine Kleinigkeit aufgefallen und ich dachte bevor andere auch suchen, Poste ich es gerade.

Beim Create wird fEOLChar := #13; gesetzt. Allerdings fEOLLength auf zwei. Dann fehlt immer das erste Zeichen von der ersten Spalte.

Gruß
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz