Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   StringList in StringGrid lesen (https://www.delphipraxis.net/159424-stringlist-stringgrid-lesen.html)

Alterauge 27. Mär 2011 16:09

StringList in StringGrid lesen
 
Liste der Anhänge anzeigen (Anzahl: 1)
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.

sx2008 28. Mär 2011 01:34

AW: StringList in StringGrid lesen
 
Zitat:

Zitat von Alterauge (Beitrag 1091340)
was mache ich hier falsch?

Leider So Einiges.
Hier fehlt z.B. ein Begin
Delphi-Quellcode:
procedure TForm1.AdvGlowButton1Click(Sender: TObject);
begin // <==== fehlt bei dir
  for vI:=1 to Length(fText) do  // wo ist fText deklariert ?
  begin
    Explode(load[vI], '*', AdvStringGrid1.Rows[vI]);   // wieso Explode() und nicht Split() ?
    AdvStringGrid1.RowCount := AdvStringGrid1.RowCount + 1;
  end;
end;
Denk' auch daran, dass wenn du Sourcecode hochladest, dass du *.exe und *.dcu vorher aus dem Zip-Archiv rauslöscht.
Auch das Verzeichnis __history ist aus Sicht der Leser nur unnötiger Ballast.

Luckie 28. Mär 2011 04:36

AW: StringList in StringGrid lesen
 
Zitat:

Zitat von Alterauge (Beitrag 1091340)
was mache ich hier falsch?

Meinst du nicht auch, dass es sehr hilfreich wäre, wenn du uns die Fehlermeldung nennst oder was für ein Problem der Quellcode verursacht?

Alterauge 28. Mär 2011 08:19

AW: StringList in StringGrid lesen
 
Danke für die schnelle Antwort!:)

Werde nochmal alles prüfen und überarbeiten!
Danke für die Hinweise!


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:55 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz