AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Speichern in ein StringGrid mal anders
Thema durchsuchen
Ansicht
Themen-Optionen

Speichern in ein StringGrid mal anders

Ein Thema von Snickersbro · begonnen am 13. Apr 2015 · letzter Beitrag vom 13. Apr 2015
Antwort Antwort
Snickersbro

Registriert seit: 13. Apr 2015
Ort: Aus dem Erzgebrige
3 Beiträge
 
Delphi 7 Enterprise
 
#1

Speichern in ein StringGrid mal anders

  Alt 13. Apr 2015, 12:23
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
  Mit Zitat antworten Zitat
Snickersbro

Registriert seit: 13. Apr 2015
Ort: Aus dem Erzgebrige
3 Beiträge
 
Delphi 7 Enterprise
 
#2

AW: Speichern in ein StringGrid mal anders

  Alt 13. Apr 2015, 12:26
P.S.: Ach ja .. ganz vergessen, 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;
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
796 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Speichern in ein StringGrid mal anders

  Alt 13. Apr 2015, 14:19
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
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Speichern in ein StringGrid mal anders

  Alt 13. Apr 2015, 14:24
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.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.617 Beiträge
 
Delphi 12 Athens
 
#5

AW: Speichern in ein StringGrid mal anders

  Alt 13. Apr 2015, 14:25
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).
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Snickersbro

Registriert seit: 13. Apr 2015
Ort: Aus dem Erzgebrige
3 Beiträge
 
Delphi 7 Enterprise
 
#6

AW: Speichern in ein StringGrid mal anders

  Alt 13. Apr 2015, 14:42
Warum einfach, wenn's auch schwer geht?
Manchmal sind halt die einfachsten Lösungen die besten.
Vielen Dank für die schnelle Antwort! Jetzt geht alles wie es soll!
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:01 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