Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Memo.lines nach StringGrid kopieren (https://www.delphipraxis.net/54758-memo-lines-nach-stringgrid-kopieren.html)

lucius 11. Okt 2005 10:03


Memo.lines nach StringGrid kopieren
 
Erstmal guten Morgen,

Ich habe ein StringGrid1 mit 5 Spalten und 5 Zeilen und ich habe ein Memo mit folgendem Inhalt:
Zitat:

11-10-2005;TV-Rips;UFC Unleashed S01E07 *XViD* *DSRip*;AAF;25x15MB
Jetzt moechte ich jede Memo.line splitten und die im StrinGrid kopieren.
Wobei StringGrid1.FixedRows := 1;
Zitat:

In Zeile1/Spalte1: 11-10-2005 in Zeile1/Spalte2: TV-Rips
in Zeile1/Spalte3: UFC Unleashed S01E07 *XViD* *DSRip* unsw.
Habe auch schon was code hier gefunden aber der funzt nicht fuer mein StringGrid.
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
  ndx : Integer;
  foo : Integer;
  text : String;
begin
  StringGrid1.RowCount := Memo1.Lines.Count;
  for ndx := 0 to Pred(Memo1.Lines.Count) do
  begin
    text := Memo1.Lines[ndx];
    foo := Pos (';',text);
    StringGrid1.Cells[0,ndx+1] := copy (text,1,foo-2);
    StringGrid1.Cells[1,ndx+1] := copy (text,foo+1,Length(text)-foo);
  end;
end;
Ich habe mehr Spalten und Zeilen IM SG und ich kriege es nicht hin.
Hat jemand vielleicht ne Loesung ?
Waere sehr nett, danke im voraus.

marabu 11. Okt 2005 10:26

Re: Memo.lines nach StringGrid kopieren
 
Hallo lucius,

du wirst vielleicht da und dort noch Anpassungen vornehmen müssen:

Delphi-Quellcode:
function ParseStr(var s: string; delimiters: string; purge: boolean = true): string;
var
  i: integer;
begin
  i := 0;
  while (i < Length(s)) and (Pos(s[Succ(i)], delimiters) = 0) do
    Inc(i);
  Result := Copy(s, 1, i);
  Delete(s, 1, i + Ord(purge));
end;

procedure ExtractFields(s, delimiters: string; sl: TStrings);
var
  t: string;
begin
  sl.Clear;
  while s <> '' do begin
    t := ParseStr(s, delimiters, true);
    if t <> '' then
      sl.Add(t);
  end;
end;

procedure TDemoForm.CopyButtonClick(Sender: TObject);
var
  i: integer;
begin
  StringGrid.RowCount := Memo.Lines.Count;
  for i := 0 to Pred(Memo.Lines.Count) do
    ExtractFields(Memo.Lines[i], ';', StringGrid.Rows[i]);
end;
Grüße vom marabu

lucius 11. Okt 2005 10:36

Re: Memo.lines nach StringGrid kopieren
 
Moin marabu, habs angepasst und es funktioniert, ich muss nur noch bei StringGrid1 die erst Zeile unveraendert haben. (StringGrid1.FixedRows := 1)
Mal gucken, und wieder Dankeschoen fuer deine Hilfe. :P

lucius 11. Okt 2005 11:00

Re: Memo.lines nach StringGrid kopieren
 
Hmmm wie kriege ich in dazu das er erst ab der zweiten Zeile im StringGrid einfuegt?
Sonst klapt alles wunderbar.

Delphi-Quellcode:
procedure TMainForm.Button2Click(Sender: TObject);
var
  i: integer;
begin
  StringGrid1.RowCount := Memo1.Lines.Count;
  for i := 0 to Pred(Memo1.Lines.Count) do
    ExtractFields2(Memo1.Lines[i], ';', StringGrid1.Rows[i]);
end;

marabu 11. Okt 2005 11:17

Re: Memo.lines nach StringGrid kopieren
 
Delphi-Quellcode:
procedure TMainForm.Button2Click(Sender: TObject);
var
  i: integer;
begin
  StringGrid1.RowCount := Succ(Memo1.Lines.Count);
  for i := 0 to Pred(Memo1.Lines.Count) do
    ExtractFields2(Memo1.Lines[i], ';', StringGrid1.Rows[Succ(i)]);
end;
marabu

lucius 11. Okt 2005 11:23

Re: Memo.lines nach StringGrid kopieren
 
Marabu du bist der Retter in Not, funzt jetzt einwandfrei, vielen Dank.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:42 Uhr.

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