![]() |
Probleme bei CSV zu StringGrid
Moin,
Ich habe folgende Prozedur gebastelt und bin (nach langem Versuchen) auf folgende Lösung gekommen:
Code:
Nur kommt beim 2. oder 3. Durchlauf eine Zugriffsverletzung(ohne veränderung des CSV inhaltes), und ich habe keinen Schimmer, woher die kommen kann...
procedure TForm9.Timer1Timer(Sender: TObject);
Var I,A : Integer; fields: Array of Array of String; fieldsTemp: TStringList; begin Memo1.Lines.LoadFromFile(--irgend eine CSV-); if Memo1.Lines.Count > 0 then begin for I := 0 to Memo1.Lines.Count - 1 do begin fieldsTemp := TStringList.Create; fieldsTemp := Split(Memo1.Lines.Strings[I],';'); Stringgrid1.RowCount := Memo1.Lines.Count+1; StringGrid1.ColCount := fieldsTemp.Count; SetLength(fields,Memo1.Lines.Count-1); for A := 0 to fieldsTemp.Count - 1 do begin if Memo1.Lines.Count < 1 then begin // Application.MessageBox(Pchar(inttostr(Memo1.Lines.Count)),'Wert'); SetLength(fields[I],Memo1.Lines.Count+1); // SetLength(fields[I],Memo1.Lines.Count); fields[I,A] := fieldsTemp.Strings[A]; StringGrid1.Cells[A,I+1] := fields[I,A]; end; end; end; End; end; Ich hab heute irgendwie voll die Denkblokade :wiejetzt: Gruß Christian |
Re: Probleme bei CSV zu StringGrid
Hat das einen besonderen Grund, dass du jedesmal die Länge von fields, obwohl sie durch count schon feststeht, neu setzt? Außerdem meine ich, dass das bei dynamischen mehrdimensionalen Arrays irgendwas zu beachten gab... nur was war das noch? :gruebel:
|
Re: Probleme bei CSV zu StringGrid
Ok, das mit der Denkblockade hat bestätigt ;)
ich hatte gleich 2 Fehler eingebaut:
Code:
und
for A := 0 to fieldsTemp.Count -1 do
begin if Memo1.Lines.Count > 1 then // <== größer ist doch besser als kleiner begin
Code:
naja, jetzt funktioniert es erstmal
SetLength(fields,fieldsTemp.Count); //dann auch noch verdrehte Setlength
|
Re: Probleme bei CSV zu StringGrid
Hallo, was hast du denn gegen die im Forum vorgestellten fertigen Lösungen? ;-)
![]() ![]() Was du bei dir nämlich nicht beachtet hast ist, wenn z.B. ; in den Einzelstrings vorkommen und der String mit Anführungszeichen abgegrenzt ist:
Code:
;-)
Ein String;"Noch ein String mit ; drin";Noch ein weiterer String
|
Re: Probleme bei CSV zu StringGrid
Hallo,
wo gibst Du die
Delphi-Quellcode:
frei?
fieldsTemp := TStringList.Create;
Musst Du das wirklich pro Zeile machen, reicht nicht einmalig? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:21 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