Registriert seit: 4. Mär 2011
306 Beiträge
Delphi 2010 Professional
|
StringList in StringGrid lesen
27. Mär 2011, 16:09
Hallo
was mache ich hier falsch?
Delphi-Quellcode:
implementation
{$R *.dfm}
function Split(const fText: String; const fSep: Char; fTrim: Boolean=false; fQuotes: Boolean=false):TStringList;
var vI: Integer;
vBuffer: String;
vOn: Boolean;
begin
Result:=TStringList.Create;
vBuffer:='';
vOn:=true;
for vI:=1 to Length(fText) do
begin
if (fQuotes and(fText[vI]=fSep)and vOn)or(Not(fQuotes) and (fText[vI]=fSep)) then
begin
if fTrim then vBuffer:=Trim(vBuffer);
if vBuffer='' then vBuffer:=fSep; // !!! sonst läuft z.B. split(',**',',') auf einen Hammer...
if vBuffer[1]=fSep then
vBuffer:=Copy(vBuffer,2,Length(vBuffer));
Result.Add(vBuffer);
vBuffer:='';
end;
if fQuotes then
begin
if fText[vI]='*' then
begin
vOn:=Not(vOn);
Continue;
end;
if (fText[vI]<>fSep)or((fText[vI]=fSep)and(vOn=false)) then
vBuffer:=vBuffer+fText[vI];
end else
if fText[vI]<>fSep then
vBuffer:=vBuffer+fText[vI];
end;
if vBuffer<>'' then
begin
if fTrim then vBuffer:=Trim(vBuffer);
Result.Add(vBuffer);
end;
end;
procedure TForm1.AdvGlassButton1Click(Sender: TObject);
begin
Memo1.Clear;
end;
procedure TForm1.AdvGlowButton1Click(Sender: TObject);
for vI:=1 to Length(fText) do // ???????????????????????????????????????????????????????????????????????????????????????????????
begin
Explode(load[vI], '*', AdvStringGrid1.Rows[vI]); // ?????????????????????????????????????????????????????????????????????????????????????
AdvStringGrid1.RowCount := AdvStringGrid1.RowCount + 1;
end;
end;
end.
|
|
Zitat
|