![]() |
Re: savedialog/opendialog
danke, geht trotzdem nimmer!
Delphi-Quellcode:
ciao!
procedure TForm1.Button6Click(Sender: TObject); ///laden
begin opendialog1.execute; AssignFile(F, opendialog1.filename); Reset(F); BlockRead(F, @eintrag, "hier hängt der compiler" 300 * SizeOf(TDaten)); Close(F); end; |
Re: savedialog/opendialog
versuch mal:
Delphi-Quellcode:
PS: will BlockRead überhaupt 'nen Pointer zu den Daten, oder ist das als Var definiert?
Var Size: Integer;
Size := 300 * SizeOf(TDaten); BlockRead(F, @eintrag, Size); |
Re: savedialog/opendialog
laut OH
Delphi-Quellcode:
laut System.pas
procedure BlockRead(var F: File; var Buf; Count: Integer [; var AmtTransferred: Integer]);
Delphi-Quellcode:
function _BlockRead(var f: TFileRec; buffer: Pointer; recCnt: Longint; var recsRead: Longint): Longint;
|
Re: savedialog/opendialog
laut OH
Delphi-Quellcode:
laut System.pas
BlockRead(F, eintrag, 300 * SizeOf(TDaten));
//oder Var R: Integer; // tatsächlich gelesene Bytes BlockRead(F, eintrag, 300 * SizeOf(TDaten), R);
Delphi-Quellcode:
Aber vermutlich weren wohl die OH-Varianten genutzt ... das in System.pas ist nur bestimmt nur die CompilerMagic-Variante (CompilerIntern).
Var R: Integer;
BlockRead(F, @eintrag, 300 * SizeOf(TDaten), R); Also wird das Erste von OH gut passen Ô.o |
Re: savedialog/opendialog
Sorry Leute, acuh so gehts nciht, wenn man das @ weglässt den compiliert es, aber dann versagt er beim speichern, fehlermeldung mit irgendwie EloutError.
Gibts denn da nicht ne andere Möglichkeit, irgendwie, den array in den file schreiben und dann nur den file speichern ohne Parameter? |
Re: savedialog/opendialog
Aber sicher gibt es die :mrgreen:
Nimm eine Collection, die Colection ist dein Array, dann brauchst du eine Itemklasse, die die Daten enthält, und schon ist alles einfacher :mrgreen: |
Re: savedialog/opendialog
hmmm :gruebel:
hab leider kein Delphi hier, um es selber mal zu testen, aber eigentlich sllte es doch funktionieren? Aber du könntest natürlich die Array-Daten in einen anderen Speicher (z.B. einen Stream) kopieren und diesen dann in einer Datei abspeichern. Und Das auslesen dann eben zuerst in den Stream und von dort die Daen zurück ins Array kopieren, aber wie gesagt solle es auch ohne einen derartigen Umweg gehen -.-'' |
Re: savedialog/opendialog
:wiejetzt: :?: :?: :duck: :coder2:
so eine collection, dann muss ich statt array[1..xxx] deien daten:collection[1..xxx]of TDaten deklarieren, und dann collection.item1:=edit1.text; ? oder wie :?: file.write? :?: |
Re: savedialog/opendialog
Collection:
Eine Collection ist eine Klasse. Wie TObjectList zum Beispiel. Die musst du dann erstellen, befüllen, speichern und wieder freigeben. Ersatz für ein Array of String könnte (ungetestet) etwa so aussehen:
Delphi-Quellcode:
TJsCollection & Co gibt's hier:
type
StringItem = class (TCollectionItem) private FStr: String; published property Str: String read FStr write FStr; end; var Coll: TJsCollection; ... // String hinzufügen with Coll.Add as StringItem do Str := 'Mein toller unbegenzter Daten-String'; // löschen usw. weis ich jetzt nicht genau, schau mal in die Hilfe von TCollection // speichern Coll.SaveToFile ('C:\Daten.dat'); // laden Coll.LoadFromFile ('C:\Daten.dat') ![]() Ach, und alci hat da auch ein Tutorial dazu, vielleicht lässt er dich ja mal reingucken ... ;) Gut, ich habs auch noch, aber frag' mal lieber alci ;-) |
Re: savedialog/opendialog
danke!
werde ich gleich mal ausprobieren, das geht hier nämlcih langsam über das in der schule gelernet hinaus! Danke Achso, kann jemand mir ein Buch empfhlen, womit man delphi vernünftig lernen kann? :dp: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:52 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