![]() |
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:
Ich hoffe ihr versteht mein Problem und könnt mir helfen :)
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; |
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; |
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 |
AW: Speichern in ein StringGrid mal anders
Zitat:
|
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).
|
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 21:08 Uhr. |
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