![]() |
Speichern eines Stringgrids
:shock: :pale: :wall: Mal ne kleine Einleitung zu meiner Geschichte(hoffe sie passt hier rein)
Ich bin in der 12ten klasse und leider ein totaler Delphi Analphabet, jeder Schüler unserer klasse muss ein referat vorbereiten. Ich hab das Thema Speichern eines Stringgrids erhalten. Ich soll den quelltext von Zeile zu Zeile erklären können, dies ist absolut nicht der fall... Ich weis ich kann von niemanden erwarten das jemand sich die arbeit für mich macht aber (mal ganz erlich :-D) ihr seid meine Letzte hoffnung. Es geht um folgenden Quelltext ich weis das es auch andere möglichkeiten gibt ein stringgrid zu speicher aber das ist die vorgabe des lehrers...Ich habe es bereit getestet und es funktioniert!
Delphi-Quellcode:
Ich hoffe ihr könnt mir helfen
procedure SaveStringGridToFile(StringGrid: TStringGrid; const FileName: String);
var F: TStringList; i: Integer; begin F := TStringList.Create; try F.Add(IntToStr(StringGrid.RowCount)); F.Add(IntToStr(StringGrid.ColCount)); for i := 0 to (StringGrid.RowCount - 1) do F.Add(StringGrid.Rows[i].CommaText); F.SaveToFile(FileName); finally F.Free; end; end; procedure LoadStringGridFromFile(StringGrid: TStringGrid; const FileName: String); var F: TStringList; i: Integer; begin F := TStringList.Create; try F.LoadFromFile(FileName); StringGrid.RowCount := StrToInt(F[0]); StringGrid.ColCount := StrToInt(F[1]); for i := 0 to (StringGrid.RowCount - 1) do StringGrid.Rows[i].CommaText := F[i + 2]; finally F.Free; end; end; [edit=SirThornberry]Delphi-Tags gesetzt - nächstes mal bitte selbst machen - Mfg, SirThornberry[/edit] |
Re: Am ende der verzweiflung
Hi!
Was genau verstehst Du denn nicht? Das Referat ist bis morgen, ja? In der 12. Klasse sollte man in der Lage sein, sich Informationen zu ergoogeln und wenn Du im Unterricht lieber was anderes machst und nicht aufpasst... ;-) |
Re: Am ende der verzweiflung
Nene das ist nicht bis morgen also ich verstehen nicht was er bei der ersten procedur macht also ab
Delphi-Quellcode:
Ich versteh nur bahnhof// ja das stimmt allerdings blick ich nach dem googeln genausoviel wie voher Was macht der in jeder zeile davon?
try
F.Add(IntToStr(StringGrid.RowCount)); F.Add(IntToStr(StringGrid.ColCount)); for i := 0 to (StringGrid.RowCount - 1) do F.Add(StringGrid.Rows[i].CommaText); F.SaveToFile(FileName); finally F.Free; end; [edit=SirThornberry]Delphi-Tags gesetzt - nächstes mal bitte selbst machen - Mfg, SirThornberry[/edit] |
Re: Am ende der verzweiflung
Hallo, kannst du deinem Beitrag bitte einen aussagekräftigen Titel geben der das Problem ansatzweise beschreibt? :)
Wenn du den Quelltext einrückst ist er besser lesbar und man findet meistens auch schneller Fehler. Wir machen keine Hausaufgaben für andere und genau das willst du hier von uns. Wenn du Fragen zu etwas bestimmten hast stelle diese. Aktuell ist nicht zu erkennen das du dich selbst bemühst. |
Re: Am ende der verzweiflung
Du jannst doch in der Hilfe nachschlagen was jede Zeile macht.
Dadurch sollte es dir doch Möglich sein das ganze zu erklären. ![]() |
Re: Am ende der verzweiflung
Cursor auf etwas unbekanntes setzen und F1 drücken :zwinker:
|
Re: Am ende der verzweiflung
Eine sehr wahrscheinliche Frage wird zum Thema "TRY ... FINALLY ... END" kommen. Anbei ein Link, der Dir das erklärt. Ob die Erklärung allerdings taugt, wenn man sehr wenig bis gar keine Grundkenntnisse hat, sei dahingestellt:
![]() Durch den Rest kannst Du Dich ein wenig durchhangeln. Beispiel: F.Add(IntToStr(StringGrid.RowCount)); Das lösen wir mal von innen heraus auf - ähnlich wie in Mathe ... ein sog. "Grid" ist nichts anderes als eine Tabelle. Aber das hast Du vermutlich schon gesehen. Die Zeilen heißen "Rows", die Spalten "Columns", kurz "Cols". "RowCount" und "ColCount" liefern die Anzahl an Zeilen / Spalten als natürliche Ganzzahl. Und diese Ganzzahl wird von etwas verwurstet, das sich "IntToStr()" nennt. Was "IntToStr()" macht, beschreibt folgende Seite: ![]() ![]() Und dieser String wird von der Methode "Add" der Variablen "F" verwurstet. F ist vom Typ TStringList. Auch diese ist auf besagter Seite erklärt: ![]() Und so weiter. Das mag ein wenig steinig sein, aber ein Grundverständnis solltest Du auf diese Weise erlangen können. |
Re: Speichern eines Stringgrids
Ohne witz das hat mir jetz sehr viel geholfen dankeschön!!!
|
Re: Speichern eines Stringgrids
Eine frage hät ich tratzdem noch was bringt
finally F.Free; |
Re: Speichern eines Stringgrids
try
finally end; Sorgt dafür, dass auch bei einem Fehler ("Exception") der Code im finally noch ausgeführt wird. Es wird also trotz dem schwerwiegendem Fehler das Objekt noch freigegeben ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:31 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