Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Nach max.999 Gridzeilen eine Datei in grid nr. 2 fortführen? (https://www.delphipraxis.net/54751-nach-max-999-gridzeilen-eine-datei-grid-nr-2-fortfuehren.html)

rhodan 11. Okt 2005 09:01


Nach max.999 Gridzeilen eine Datei in grid nr. 2 fortführen?
 
Moin,

hab gerade nen ziemlichen schreck bekommen als ich sehen musste wie die datei die ich in ein Stringgrid lud nach 999 Zeilen abgeschnitten wurde :shock:

das hier ist der code mit dem ich mein grid fülle:

Delphi-Quellcode:
var
datei : TextFile;
  dateiname : String;
  zeile : String;
  inhalt : String;
  perslist : Sarr;
  pers : Sarr;
i, j : integer;
 
begin
  dateiname := ('c:\rankinglist.htm');
  AssignFile(datei, dateiname);
  reset(datei);
  inhalt := '';
  repeat
    Readln(datei, zeile);
    inhalt := inhalt + zeile;
  until eof(datei);
  CloseFile(datei);
  inhalt := getTable(inhalt);
  perslist := getEntries(inhalt);

  i := 0;
  while (perslist[i] <> '') do
  begin
    pers := processAccount(perslist[i]);
    for j := 0 to 11 do
    begin
      Stringgrid1.cells[j+1,i+1]:=pers[j];
    end;
    inc(i);
  end;
end;
end;
meine datei umfasst aber ca. 1200- 1300 zeilen, also fehlen mir welche. gibt es einen weg vielleicht vorher schon ein reserve grid zu erstellen wo die restlichen zeilen (im falle das das erste voll ist) reingeladen werden?

Per Suchfunktion hab ich explezit mit diesem thema nix gefunden.. :?

Bitte kann mir jemand (vielleicht anhand meines codes) sagen wie ich das bewerkstelligen kann?

gruß

rhodan

freak4fun 11. Okt 2005 09:06

Re: Nach max.999 Gridzeilen eine Datei in grid nr. 2 fortfüh
 
Hallo :hi:,
du kannst gucken, wie viele Zeilen du hast und wenn die 999 überschritten werden kannst du ein 2. Grid dynamisch erstellen. :)

MfG
freak

Jasocul 11. Okt 2005 09:07

Re: Nach max.999 Gridzeilen eine Datei in grid nr. 2 fortfüh
 
Deine Daten sollten problemlos in dein Grid passen. Du musst nur zur Laufzeit die Zeilenzahl (RowCount) anpassen.
Oder habe ich dein Problem nicht verstanden?

marabu 11. Okt 2005 09:14

Re: Nach max.999 Gridzeilen eine Datei in grid nr. 2 fortfüh
 
Hallo rhodan,

wusstest du, dass du deine Datei viel schneller laden kannst?

Delphi-Quellcode:
uses
  Classes;
var
  sl: TStringList;
begin
  sl := TStringList.Create;
  sl.LoadFromFile('c:\rankinglist.htm');
  // sl.Text enthält jetzt den HTML-Code aus deiner Datei
  sl.Free;
end;
Die 999 wird wohl von deiner Routine getEntries() erzeugt. Wer weiß, was bei deinem HTML-Parser schief läuft.

Grüße vom marabu

freak4fun 11. Okt 2005 09:27

Re: Nach max.999 Gridzeilen eine Datei in grid nr. 2 fortfüh
 
Zitat:

Zitat von marabu
Delphi-Quellcode:
uses
  Classes;
var
  sl: TStringList;
begin
  sl := TStringList.Create;
  sl.LoadFromFile('c:\rankinglist.htm');
  // sl.Text enthält jetzt den HTML-Code aus deiner Datei
  sl.Free;
end;

Delphi-Quellcode:
uses
  Classes;
var
  sl: TStringList;
begin
  sl := TStringList.Create;
  try
    sl.LoadFromFile('c:\rankinglist.htm');
    // sl.Text enthält jetzt den HTML-Code aus deiner Datei
  finally
    sl.Free;
  end;
end;
;)

MfG
freak

rhodan 11. Okt 2005 23:17

Re: Nach max.999 Gridzeilen eine Datei in grid nr. 2 fortfüh
 
ahh, klasse, danke für eure antworten.

habs jetzt schon geschafft die komplette rankliste reinzuladen, wenn ich diese zeile anhänge in meinen button zum laden:


Delphi-Quellcode:
stringgrid1.RowCount := 1500;
allerdings ändert sich die zeilenanzahl ja ständig, weil leute aus der rankliste fliegen etc.
wenn ich 1500 benutze und es sind leute in der liste, und ich sortiere diese dann nach Namen z.B dann hab ich die leeren zeilen die über sind immer ganz oben in der liste :wall:

klasse wäre es ja wenn er exact soviele zeilen erstellt wie benötigt werden für die datei, also ne variable zahl.

kann mir jemand den befehl dafür nennen oder wie ich das anhand meines (oberer post) codes einbinden kann?

das wär super, danke euch


rhody

marabu 12. Okt 2005 05:57

Re: Nach max.999 Gridzeilen eine Datei in grid nr. 2 fortfüh
 
Vorausgesetzt dein HTML-Parser macht alles richtig, dann hast du ja wohl die korrekte Zahl der Einträge in persList. Zusammen mit der Kopfzeile deines Grid ergibt das dann:

Delphi-Quellcode:
StringGrid.RowCount := Succ(Length(persList));
Grüße vom marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:57 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