Forum
Grundkurs
»Introduktion
»Snabbguide
»Komponenter
»Händelser
»Strängar
»Räkna med Delphi »Egna
typer
»Selektion
»Iteration
»Menyer
»Funktioner
»Arraystrukturer
Tips & Tricks
»Nya tips
»Blandat
»Databaser
»Filer
»Forms
»Grafik
»Internet
»Komponenter
»Matematik
»Multimedia
»Objekt/ActiveX
»Skrivare
»Strängar
»System
»Mest lästa tips
Artiklar
»Delphi och ADO
»Bygga en DLL
»Skapa en enkel rapport
»Hantera registret
»Enheter, units
»Klassen TCanvas
»Använd LookUp Controls
Nya
tips
Lägg
till tips
Delphilänkar
Gästbok
|
|
|
|
Läs in en CSV-fil
|
Kategori: Filer
Inlagt: 2005-10-04
Läst: 1439
Inlagt av: Staffan Berg
|
Beskrivning |
Detta exempel beskriver hur du kan läsa in en kommaseparerad textfil (*.CSV) till ditt program.
|
Kod |
procedure TForm1.FileLoadClick(Sender: TObject); var FileName1, sRecord: string ; Row: integer; begin // Let user select a file. // Skip this until next lesson. For now, simply hard-code it. FileName1 := 'C:\ParseCSV\Office.csv'; ListBox1.Items.LoadFromFile(FileName1); StringGrid1.RowCount := ListBox1.Items.Count; // for every record... ( count starts at 0 ! ) for Row := 0 to ListBox1.Items.Count - 1 do begin sRecord := ListBox1.Items[Row]; ParseRecord(sRecord, Row); end; // Select first "data" cell StringGrid1.Row := 1; StringGrid1.Col := 0; StringGrid1.SetFocus; end; procedure TForm1.ParseRecord(sRecord: string ; Row: integer); var Col, PosComma: integer; sField: string ; begin sRecord := StringReplace(sRecord, '"', '', [rfReplaceAll] ); Col := 0; // first column of string grid repeat PosComma := Pos(',', sRecord); if PosComma > 0 then sField := Copy(sRecord, 1, PosComma - 1) else sField := sRecord; StringGrid1.Cells[Col, Row] := sField; if PosComma > 0 then begin Delete(sRecord, 1, PosComma); Col := Col + 1; // next column end; until PosComma = 0; end;
|
|
|