- Delphiartiklar, tips, forum, länksamling - 

      

START | DELPHI | LÄNKARGÄSTBOK 




 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: 1403
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;

 
 
© Copyright 2005 - Staffan Berg
- Alla rättigheter förbehålles -