Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Logdatei in StringGrid laden (https://www.delphipraxis.net/114892-logdatei-stringgrid-laden.html)

marabu 2. Jun 2008 14:57

Re: Logdatei in StringGrid laden
 
Hallo Sascha,

dein Logfile ist ein Tab Delimited Textfile:

Delphi-Quellcode:
procedure ShowLog(const fn: TFileName; sg: TStringGrid; delimiter: Char = #9);
var
  log: TextFile;
  line: string;
begin
  AssignFile(log, fn);
  Reset(log);
  with sg do
  begin
    RowCount := 1;
    while not Eof(log) do
    begin
      ReadLn(log, line);
      Rows[Pred(RowCount)].Text := StringReplace(line, delimiter, sLineBreak, [rfReplaceAll]);
      RowCount := RowCount + 1;
    end;
    FixedRows := 1;
  end;
  CloseFile(log);
end;
Getippt und nicht getestet.

Freundliche Grüße

SaFu 2. Jun 2008 15:09

Re: Logdatei in StringGrid laden
 
Zitat:

Zitat von marabu
Hallo Sascha,

dein Logfile ist ein Tab Delimited Textfile:

Was sagt mir das wo bekomme ich sowas raus

ich komme mit diesen ganzen Antorten irgenwie nicht weiter.

Z.B mit dem anpassen der Zeilen dazu muss doch erst die Datei Formatiert weden um die richtige Zeilen anzahl heraus zu bekommen oder??

SaFu 2. Jun 2008 15:12

Re: Logdatei in StringGrid laden
 
Ok Sorry nicht schlagen es Funzt doch aber kann mir das einer mit dieser

Tab Delimited Textfile:

noch erklären nur abtippen und nicht verstehn ist blöd

mkinzler 2. Jun 2008 15:13

Re: Logdatei in StringGrid laden
 
Zitat:

Was sagt mir das wo bekomme ich sowas raus
Na die Felder sind durch Tab getrennt.
Zitat:

Z.B mit dem anpassen der Zeilen dazu muss doch erst die Datei Formatiert weden um die richtige Zeilen anzahl heraus zu bekommen oder??
Nein, weil die Zeilenanzahl ja gleich beliebt.
Du musst Zeile für Zeile durchgehen, diese abhand des Trenner auf trennen (explode, StringListe) und dann darstellen

marabu 2. Jun 2008 15:20

Re: Logdatei in StringGrid laden
 
Sascha,

Zitat:

Zitat von fuknersascha
... aber kann mir das einer mit dieser Tab Delimited Textfile noch erklären - nur abtippen und nicht verstehn ist blöd

das gibt es nur eine einzige Zeile in meinem Beispiel, über die du nachdenken musst:

Delphi-Quellcode:
// ...
Rows[Pred(RowCount)].Text := StringReplace(line, delimiter, sLineBreak, [rfReplaceAll]);
// ...
Der Text einer Row[] enthält die Spaltenwerte als einzelne Zeilen - und nimmt sie auch so auf. Aber das hast du inzwischen bestimmt schon selbst erkannt.

Freundliche Grüße

SaFu 2. Jun 2008 15:32

Re: Logdatei in StringGrid laden
 
So einigermaßen hab ich verstanden.

! Frage noch kann man die Cellenbreite auch Automatisch anpassen lassen also so lang wie die längstebreite in der Spalte ich denke ich habe schonmal einen Code hier gesehen aber ich find den nicht mehr

DeddyH 2. Jun 2008 15:42

Re: Logdatei in StringGrid laden
 
Mal für eine Spalte:
- Breite auf 0 setzen
- beim zeilenweisen Einfügen Canvas.TextWidth mit aktueller Breite vergleichen
- wenn größer, Breite neu setzen

Das Ganze kannst Du auch in einem Array für alle Spalten machen, ist ja immer dasselbe Prinzip.

marabu 2. Jun 2008 16:04

Re: Logdatei in StringGrid laden
 
Hallo,

Zitat:

Zitat von DeddyH
... wenn größer, Breite neu setzen ...

eventuell ist es besser, erstmal nur die maximale Textbreite einer Spalte zu ermitteln und die Spaltenbreite dann zum Schluß zu setzen.

Freundliche Grüße

DeddyH 2. Jun 2008 18:45

Re: Logdatei in StringGrid laden
 
Mit Breite war eigentlich eine Variable zur Ermittlung der aktuellen maximalen Breite gemeint, aber das ging aus meiner Beschreibung nicht eindeutig hervor, muss ich zu meiner Schande zugeben.

SaFu 3. Jun 2008 08:22

Re: Logdatei in StringGrid laden
 
meint ihr sowas

Delphi-Quellcode:
StringGrid1.DefaultCol.Widht:= StringGrid1.Canvas.TextWidth(zellen Position);
und das alles in eine schleife gelegt


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:53 Uhr.
Seite 2 von 4     12 34      

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-2025 by Thomas Breitkreuz