AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

StringGrid Inhalt Speichern?

Ein Thema von Borschti · begonnen am 23. Nov 2007 · letzter Beitrag vom 26. Nov 2007
Antwort Antwort
Seite 1 von 2  1 2      
Borschti

Registriert seit: 1. Nov 2007
Ort: Marburg Lahn
235 Beiträge
 
Delphi 2007 Professional
 
#1

StringGrid Inhalt Speichern?

  Alt 23. Nov 2007, 09:30
Hallo,

ich habe ein Problem mit meinem SaveDialog und zwar bin ich soweit das ich zwar aus meinem StringGrid in eine Textdatei etwas schreiben kann aber durch meine for-Schleife wird immer nur die Letzte Zeile meines StringGrids in die Datei gespeichert, was auch eigentlich Logisch ist. Nun will ich aber das jede Zeile meines StringGrids gleichzeitig in meine Datei gespeichert wird.

Hier mal der Code-Ausschnitt:

Delphi-Quellcode:
procedure TForm1.Speichern1Click(Sender: TObject);
 var i: Integer;
begin
  if SaveDialog1.Execute then
     try
      for i := 1 to 10 do begin
        StringGrid1.Rows[i].SaveToFile(SaveDialog1.Filename);
      end;
     except
       ShowMessage ('Fehler beim Speichern der Datei!');
     end;
Kennt da vielleicht jemand eine Lösung?

Auserdem werden die einzelnen Zeileninhalte untereinander in der Textdatei gespeichert, ich will aber das sie wie im Folgenden Beispiel gespeichert werden damit ich gespeicherte Datei auch wieder in mein StringGrid laden kann.

Hier mal das angekündigte Beispiel:

1;52323;Müller;Hans;Kühle Bäume 12;13186;Jesberg;
2;52266;Lang;Susanne;Am Rödel 21;52131;Hundshausen;
...

Bin für jede hilfreiche Antwort dankbar

mfg Alex
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#2

Re: StringGrid Inhalt Speichern?

  Alt 23. Nov 2007, 09:40
Hai Borschti,

schaue Dir doch mal diesen Thread an.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Borschti

Registriert seit: 1. Nov 2007
Ort: Marburg Lahn
235 Beiträge
 
Delphi 2007 Professional
 
#3

Re: StringGrid Inhalt Speichern?

  Alt 23. Nov 2007, 10:43
Daanke für den Link werde mirs mal genauer anschaun und mich gegebenenfalls nochmal melden
  Mit Zitat antworten Zitat
Borschti

Registriert seit: 1. Nov 2007
Ort: Marburg Lahn
235 Beiträge
 
Delphi 2007 Professional
 
#4

Re: StringGrid Inhalt Speichern?

  Alt 23. Nov 2007, 11:49
Also das klappt jetzt fast alles so wie es soll, das ist schonmal gut

Allerdings habe ich noch 2 Probleme, und zwar wird ja als Trennzeichen in der abgespeicherten Textdatei, durch .CommaText, ein Komma verwendet, ich brauch aber ein Semikolon als Trennzeichen damit ich die Datei dann auch wieder in mein StringGrid einlesen kann gibts da ein Befehl in der Art wie .CommaText?

Meine zweite Frage ist wie ich die erste Zeile bzw. die FixedRows vom Speichern ausschliesen kann?

mfg Alex
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#5

Re: StringGrid Inhalt Speichern?

  Alt 23. Nov 2007, 12:03
Zitat von Borschti:
... ich brauch aber ein Semikolon als Trennzeichen damit ich die Datei dann auch wieder in mein StringGrid einlesen kann gibts da ein Befehl in der Art wie .CommaText?
Das Komma ist leider fest vorgegeben. Aber das sollte doch eigentlich egal sein welches Trennzeichen verwendet wird!

Zitat:
Meine zweite Frage ist wie ich die erste Zeile bzw. die FixedRows vom Speichern ausschliesen kann?
Das hat marabu doch berücksichtigt und sogar als Beispiel angegeben.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Borschti

Registriert seit: 1. Nov 2007
Ort: Marburg Lahn
235 Beiträge
 
Delphi 2007 Professional
 
#6

Re: StringGrid Inhalt Speichern?

  Alt 23. Nov 2007, 12:34
Naja schade eigentlich muss ich wohl ein Paar Sachen umstellen

Ich habe die Prozedur von Marabu mal getestet, allerdings werden mir bei

Delphi-Quellcode:
type
  TSaveOption = (soSaveCols, soExcludeFixed);
  TSaveOptions = set of TSaveOption;
einige Fehler angezeigt, von wegen "X erwartet aber Y gefunden", ich habe mal das eingesetzt wonach er gefragt hat aber bin nicht wirklich weitergekommen...weiß jemand wie man das beheben kann?
  Mit Zitat antworten Zitat
Borschti

Registriert seit: 1. Nov 2007
Ort: Marburg Lahn
235 Beiträge
 
Delphi 2007 Professional
 
#7

Re: StringGrid Inhalt Speichern?

  Alt 26. Nov 2007, 13:04
Da der Thread ja nun leider etwas nach unten gerutscht ist werd ich ihn wohl Pushen müssen

Also nochmal meine Frage, weiß jemand wie sich das Problem beheben lässt?

Delphi Version ist Delphi 7 Professional.

mfg
Alex
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.544 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: StringGrid Inhalt Speichern?

  Alt 26. Nov 2007, 13:14
Zeig doch mal den fehlerhaften Code und am Besten den Teil davor und den Teil dahinter gleich mit.
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
Borschti

Registriert seit: 1. Nov 2007
Ort: Marburg Lahn
235 Beiträge
 
Delphi 2007 Professional
 
#9

Re: StringGrid Inhalt Speichern?

  Alt 26. Nov 2007, 13:31
Hier ist nochmal der Code Abschnitt


Delphi-Quellcode:
type
  Bearbetien1: TMenuItem;
  Speichern1: TMenuItem;
  SaveDialog1: TSaveDialog;
  N3: TMenuItem;
  TSaveOption = (soSaveCols, soExcludeFixed); // Hier der Fehler
  TSaveOptions = set of TSaveOption;
  procedure ffnen1Click(Sender: TObject);
  procedure Druckereinstellungen1Click(Sender: TObject);
  procedure Drucken1Click(Sender: TObject);
Fehlermeldung lautet: ':' erwartet, aber '=' gefunden. Hab schon ausprobiert es mit den "Anweisungen" der Fehlermeldungen zu lösen aber irgendwann wirds einfach nurnoch schräg. Auserdem Merkwürdig ist das mir die Meldungen die sich auf den Teil beziehen mir in Fenstern ausgegeben werden, die anderen aber nicht :/

Und hier nochmal der gesamte Ausschnitt mit dem es zusammenhängt.

Delphi-Quellcode:
type
  TSaveOption = (soSaveCols, soExcludeFixed);
  TSaveOptions = set of TSaveOption;

procedure SaveGrid(sg: TStringGrid; s: TStream; so: TSaveOptions = []);
var
  iLow, iHigh, i: Integer;
  ss: TStringStream;
  bSaveCols, bExcludeFixed: Boolean;
begin
  ss := TStringStream.Create('');
  with sg do
  begin
    bSaveCols := soSaveCols in so;
    bExcludeFixed := soExcludeFixed in so;
    if bSaveCols then
    begin
      iLow := IfThen(bExcludeFixed, FixedCols);
      iHigh := Pred(ColCount);
    end else
    begin
      iLow := IfThen(bExcludeFixed, FixedRows);
      iHigh := Pred(RowCount);
    end;
    for i := iLow to iHigh do
    begin
      ss.Size := 0;
      if bSaveCols
        then ss.WriteString(Cols[i].CommaText + sLineBreak)
        else ss.WriteString(Rows[i].CommaText + sLineBreak);
      ss.Position := 0;
      s.CopyFrom(ss, ss.Size);
    end;
  end;
  ss.Free;
end;

mfg
Alex
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.544 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: StringGrid Inhalt Speichern?

  Alt 26. Nov 2007, 13:34
Irgendwie fehlt mir da etwas.
Delphi-Quellcode:
type
  TSaveOption = (soSaveCols, soExcludeFixed);
  TSaveOptions = set of TSaveOption;

  TFormMain = class(TForm) //wo ist das geblieben?
    Bearbetien1: TMenuItem;
    Speichern1: TMenuItem;
    SaveDialog1: TSaveDialog;
    N3: TMenuItem;
    procedure ffnen1Click(Sender: TObject);
    procedure Druckereinstellungen1Click(Sender: TObject);
    procedure Drucken1Click(Sender: TObject);
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
Antwort Antwort
Seite 1 von 2  1 2      


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 17: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