error while trying lesson 15: parsing a csv file

Posted by ciksha on November 13, 2009

i follow exactly the code given but got error.plz help

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, Grids, StdCtrls;

type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
ListBox1: TListBox;
MenuFile: TMenuItem;
FileLoad: TMenuItem;
FileExit: TMenuItem;
StringGrid1: TStringGrid;
procedure FileLoadClick(Sender: TObject);
procedure FileExitClick(Sender: TObject);

private
procedure ParseRecord(sRecord: string; Row: integer);

public
{ Public declarations }
end;

var
Form1: TForm1;

implementation
var
SG1:string;
{$R *.dfm}

procedure TForm1.FileLoadClick(Sender: TObject);
var
FileName1, sRecord, SG1: string;
Row: integer;
begin
FileName1 := 'D:\ParseCSV\Office.CSV';

ListBox1.Items.LoadFromFile(FileName1);
SG1 := ListBox1.Items.Count ; // give error "[Error] Unit1.pas(43): Incompatible types: 'String' and 'Integer'"
for Row := 0 to ListBox1.Items.Count - 1 do begin
sRecord := ListBox1.Items[Row];
ParseRecord(sRecord, Row);
end;
SG1.SetFocus //give error: "[Error] Unit1.pas(64): Record, object or class type required"
end;
procedure TForm1.ParseRecord(sRecord: string; Row: integer);
var
Col, PosComma: integer;
sField: string;
begin
sRecord := StringReplace(sRecord, '"', '',
[rfReplaceAll] );
Col := 0;
repeat
PosComma := Pos(',', sRecord);
if PosComma > 0 then
sField := Copy(sRecord, 1, PosComma - 1)
else
sField := sRecord;
SG1.Cells[Col, Row] := sField;
if PosComma > 0 then begin
Delete(sRecord, 1, PosComma);
Col := Col + 1;
end;

procedure TForm1.FileExitClick(Sender: TObject); //give error: "[Error] Unit1.pas(70): Statement expected but 'PROCEDURE' found "
begin
close;
end;

end.

Related articles

       

Follow Ups