Quantcast
Channel: Embarcadero Community - Embarcadero Community
Viewing all articles
Browse latest Browse all 3212

StringGrid Out of Bounds

$
0
0

I am writing an application that will parse a csv from listview and place it into the stringgrid.  I have keep geting an out of bounds exception and found the issue is that my col is out of bounds.  But I'm not sure why. when the debugger breaks, here are the following variables and values:

Name  Value
sRecord  'Partnumber;Article;Price;Stock'
Row  0
Col  0
PosSemi  11
sField  'Partnumber'

 

.
.
.
procedure TForm1.ParseRecord(sRecord: string; Row: Integer);
var
  Col, RowCount, PosSemi: integer;
  sField: string;
begin
  {we are assuming that all contents inside a column will
   be encapsilated with double-quotes (") if there are any
   spaces, commas, or semi-colons within the columns data}
  sRecord := StringReplace(sRecord, '"', '',
                            [rfReplaceAll]  );  // 1.
  Col := 0;   // first column of the row
  repeat // similar to (do... while statement)
    PosSemi := Pos(';', sRecord);               // 2.
    // if there are semi-colons we will begin to parse each column
    if PosSemi > 0 then
      sField := Copy(sRecord, 1, PosSemi - 1)   // 3.a
    else
      sField := Srecord;                        // 3.b
    SG1.Cells[Col,Row] := sField;              // 4.
    if PosSemi > 0 then
      begin
         Delete(sRecord, 1, PosSemi);
         Col := Col + 1;                           // next column
      end;
  until PosSemi = 0;
end; // Procedure Parse Record
.
.
.

 

 

The Code Breaks at 

.
.
    SG1.Cells[Col,Row] := sField;              // 4.
.
.

 

EArgurmentOutOfRangeException with message 'Column index, 0, out of bounds.  I have tried hard-coding a value for SG1 column and that will throw the same exception.


What am I doing wrong?


Viewing all articles
Browse latest Browse all 3212

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>