Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Textdatei beim laden RICHTIG anzeigen (https://www.delphipraxis.net/83501-textdatei-beim-laden-richtig-anzeigen.html)

Mucki 3. Jan 2007 19:05


Textdatei beim laden RICHTIG anzeigen
 
:-D Hallo, frohes neues noch! :-D

Es ist wieder soweit ich komme einfach nicht weiter
und wende mich deshalb an Euch!
Ich habe eine Textdatei gespeichert (Stringgrid 4 x 4 Zellen) die wie unten aussieht.

1 2 3 4

5 6 7 8

9 10 11 12

13 14 15 16

Ich möchte diese Datei laden und habe dazu folgenden Quelltext
zum lesen der Textdatei geschrieben.
Delphi-Quellcode:
var zeile:string;
begin
  if opendialog1.execute then begin
  datname:=opendialog1.filename;
  assignfile(f,Datname);
  reset(f);
   while not eof(f) do begin
   readln(f,zeile);
   stringgrid1.cells[0,0] :=zeile; setzt komplette Zeile in diese Zelle, das möchte ich aber nicht!!
   readln(f,zeile);
   stringgrid1.cells[0,1] :=zeile;
   readln(f,zeile);
   stringgrid1.cells[0,2] :=zeile;
   readln(f,zeile);
   stringgrid1.cells[0,3] :=zeile;
    end;
  closefile(f);
  end;
Ich weiss aber nicht wie man es hin bekommt
das jeder Wert wieder in seiner Zelle angezeigt wird!

Ich dachte so irgendwie:

grid1.cells[0,0] + grid1.cells[1,0] grid1.cells[2,0] + grid1.cells[3,0] :=zeile;

Pfoto 3. Jan 2007 19:14

Re: Textdatei beim laden RICHTIG anzeigen
 
Hallo Mucki,

eine Art wie du sie unten vorschlägst, gibt es leider nicht,
da ist leider Handarbeit gefragt.

Ich habe auf www.swissdelphicenter.ch
Code gefunden, wie du ein Grid laden und speichern kannst.


Gruß
Pfoto

Mucki 3. Jan 2007 19:47

Re: Textdatei beim laden RICHTIG anzeigen
 
O.K.
Danke. :)

Habe eine (Schummel) Lösung gefunden die funktioniert.
Lade die Datei einfach in einen 2. SGrid, der pro Zeile nur eine große Zelle besitzt! :idea:

marabu 3. Jan 2007 20:11

Re: Textdatei beim laden RICHTIG anzeigen
 
Hi,

es muss kein "zweites StringGrid" sein - es genügt eine StringList. Und wenn du beim Speichern statt der Leerstelle ein Komma verwendest, dann kannst du die Zellen auch nach folgendem Prinzip laden:

Delphi-Quellcode:
procedure LoadGrid(grid: TStringGrid; fn: TFileName);
var
  iRow: Integer;
  sl: TStringList;
begin
  sl := TStringList.Create;
  sl.LoadFromFile(fn);
  grid.RowCount := sl.Count;
  for iRow := 0 to Pred(sl.Count) do
  begin
    if iRow = 0 then
      with TStringList.Create do
      begin
        CommaText := sl[iRow];
        grid.ColCount := Count;
        Free;
      end;
    grid.Rows[iRow].CommaText := sl[iRow];
  end;
  sl.Free;
end;
Grüße vom marabu


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