Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Speichern in ein StringGrid mal anders (https://www.delphipraxis.net/184665-speichern-ein-stringgrid-mal-anders.html)

Snickersbro 13. Apr 2015 11:23

Speichern in ein StringGrid mal anders
 
Hallo liebe Community!
Ich habe da ein kleines Problem bezüglich meinem StringGrid. Es soll so eine Art Kalender sein, wobei der Ausdruck Stundenplan schon besser passst..
Das einlesen aus einer Textfile klappt so wie ich es mir wünsche, doch wenn ich es speichern will, kann ich es dann nicht mehr laden..
Meine Textfile ist nach diesem Muster aufgebaut:
#Dienstag
frei
frei
belegt
belegt
belegt
belegt
frei
frei
belegt
belegt
#Mittwoch wobei nach jedem #Zeichen eine neue Spalte eingelesen wird. Jetzt ist mein Problem, dass ich nicht weiß wie ich das in diesem Format speichern kann.
Zur Zeit nutze ich diese Art von Code zum Speichern
Code:
procedure TPlan.BSClick(Sender: TObject);
var
  iRow: integer;
  sl: TStringList;
begin
  sl := TStringList.Create;
  for iRow := 0 to SGP.RowCount - 1 do
    sl.Add(SGP.Rows[iRow].CommaText);
  sl.SaveToFile('Zimmer\911.txt');
  sl.Free;
end;
Ich hoffe ihr versteht mein Problem und könnt mir helfen :)

Snickersbro 13. Apr 2015 11:26

AW: Speichern in ein StringGrid mal anders
 
P.S.: Ach ja .. ganz vergessen,:roll: hier mein Code den ich zum Laden nehme:
Code:
procedure TPlan.Einlesen;
var zeile : string;
    tf: TextFile; tag, i, j: Integer;
begin

//Tageszähler
  tag := 0;
   j := 0; //für Wochentagsspalte
  //Lade Daten für Tabellen
  if R911.Checked=true then
    assignfile(tf,'Zimmer\911.txt');
  if R914.Checked=true then
    assignfile(tf,'Zimmer\914.txt');
  if R511.Checked=true then
      assignfile(tf,'Zimmer\511.txt');
  if R512.Checked=true then
      assignfile(tf,'Zimmer\512.txt');
    reset(tf);
      while not EOF(tf) do begin
        readln(tf,zeile);

      //‹berpr¸fen, ob neuer Tag beginnt
        if zeile[1] = '#' then begin
          i := 1;
    j := j + 1;
          tag := tag + 1;
          delete(zeile,1,1);

      //wenn kein neuer Tag, dann Daten in StringGrid ¸bernehmen
     end else begin
        //Montag
          if tag = 1 then begin
                //Belegt oder frei
                  SGP.Cells[j,i] := zeile;
          end;
        //Dienstag
          if tag = 2 then begin
                //Belegt oder frei
                  SGP.Cells[j,i] := (zeile);
   end;
        //Mittwoch
          if tag = 3 then begin
                //Belegt oder frei
                  SGP.Cells[j,i] := (zeile);
   end;
        //Donnerstag
          if tag = 4 then begin
                //Belegt oder frei
                  SGP.Cells[j,i] := zeile;
   end;
        //Freitag
          if tag = 5 then begin
                //Belegt oder frei
                 SGP.Cells[j,i] := zeile;
   end;
                //Zeile erhˆhen
                  i := i + 1;
                  SGP.RowCount := i;
        end;
      end;
    closeFile(tf);

end;

mikhal 13. Apr 2015 13:19

AW: Speichern in ein StringGrid mal anders
 
Du speicherst den Grid-Inhalt zeilenweise (Zeile 1: Spalte 1, Spalte 2, ...), dann musst du ihn auch zeilenweise einlesen.

Für dein Format böte sich an, die Zellen des Grids spaltenweise einzulesen, also jede Zelle der Spalte 1 für Montag, dann jede Zelle der Spalte 2 für Dienstag usw.

Grüße
Mikhal

Sir Rufo 13. Apr 2015 13:24

AW: Speichern in ein StringGrid mal anders
 
Zitat:

Zitat von mikhal (Beitrag 1297502)
Für dein Format böte sich an, die Zellen des Grids spaltenweise einzulesen, also jede Zelle der Spalte 1 für Montag, dann jede Zelle der Spalte 2 für Dienstag usw.

Generell böte es sich an die Controls nur zur Darstellung und nicht auch noch zum Speichern und Verwalten der Daten zu verwenden.

DeddyH 13. Apr 2015 13:25

AW: Speichern in ein StringGrid mal anders
 
Ich persönlich finde das Format etwas ungünstig. Falls es nicht von außen vorgegeben ist, könnte man über eine einfacher zu handelnde Struktur nachdenken (IniFile mit Bitmasken oder so etwas).

Snickersbro 13. Apr 2015 13:42

AW: Speichern in ein StringGrid mal anders
 
Warum einfach, wenn's auch schwer geht? :roll::oops:
Manchmal sind halt die einfachsten Lösungen die besten.
Vielen Dank für die schnelle Antwort! Jetzt geht alles wie es soll!:-D


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