Thema: Delphi CSV Dateien einlesen

Einzelnen Beitrag anzeigen

DelphiRacer

Registriert seit: 28. Nov 2003
Ort: Königsbronn
8 Beiträge
 
Delphi XE3 Professional
 
#11

AW: CSV Dateien einlesen

  Alt 28. Mär 2013, 12:22
Das müsste ich mir mal ganz in Ruhe anschauen. Wenn es schnell gehen soll, ersetze doch testhalber mal alle PChar durch PAnsiChar und alle Char durch AnsiChar. Funktioniert es dann?
Die (Ansi)strings nicht vergessen!

Gruß
K-H
Das habe ich gemacht, leider kommen eine Menge Fehlermeldungen:
(logisch)
fDelimiter := FormatSettings.ListSeparator (AnsiChar, Char)

...der .Listseparator ist ein (Char)
muss doch einiges umgeschrieben werden.
Ziehe mir gerade die Hilfe von E-XE3 heran.


Ein Auszug sagt:

Aufrufe von Read/ReadBuffer-Methoden von TStream
Überprüfen Sie die Aufrufe von TStream.Read/ReadBuffer, wenn Strings oder Zeichen-Arrays verwendet werden. Sehen Sie sich das folgende Beispiel an:

var
S: string;
L: Integer;
Stream: TStream;
Temp: AnsiString;
begin
// Vorhandener Code ist falsch, wenn String UnicodeString ist
Stream.Read(L, SizeOf(Integer));
SetLength(S, L);
Stream.Read(Pointer(S)^, L);

// Richtig für Unicode-String-Daten
Stream.Read(L, SizeOf(Integer));
SetLength(S, L);
Stream.Read(Pointer(S)^, L * SizeOf(Char)); // <<-- Geben Sie die Puffergröße in Byte an

// Richtig für Ansi-String-Daten
Stream.Read(L, SizeOf(Integer));
SetLength(Temp, L); // <<-- Temporären AnsiString verwenden
Stream.Read(Pointer(Temp)^, L * SizeOf(AnsiChar)); // <<-- Geben Sie die Puffergröße in Byte an
S := Temp; // <<-- String auf Unicode erweitern
end;

Role
  Mit Zitat antworten Zitat