AGB  ·  Datenschutz  ·  Impressum  







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

savedialog/opendialog

Ein Thema von marcelwhip · begonnen am 17. Aug 2005 · letzter Beitrag vom 20. Aug 2005
Antwort Antwort
Seite 2 von 3     12 3      
marcelwhip

Registriert seit: 5. Aug 2005
Ort: Berlin
38 Beiträge
 
Delphi 7 Personal
 
#11

Re: savedialog/opendialog

  Alt 17. Aug 2005, 16:41
danke, geht trotzdem nimmer!

Delphi-Quellcode:
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;
ciao!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.080 Beiträge
 
Delphi 12 Athens
 
#12

Re: savedialog/opendialog

  Alt 17. Aug 2005, 16:55
versuch mal:
Delphi-Quellcode:
Var Size: Integer;

Size := 300 * SizeOf(TDaten);
BlockRead(F, @eintrag, Size);
PS: will BlockRead überhaupt 'nen Pointer zu den Daten, oder ist das als Var definiert?
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von TeronG
TeronG

Registriert seit: 19. Jul 2004
Ort: München
960 Beiträge
 
Delphi 2007 Professional
 
#13

Re: savedialog/opendialog

  Alt 17. Aug 2005, 17:08
laut OH
procedure BlockRead(var F: File; var Buf; Count: Integer [; var AmtTransferred: Integer]); laut System.pas
function _BlockRead(var f: TFileRec; buffer: Pointer; recCnt: Longint; var recsRead: Longint): Longint;
龍 Der Unterschied zwischen Theorie und Praxis ist in der Praxis größer als in der Theorie.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.080 Beiträge
 
Delphi 12 Athens
 
#14

Re: savedialog/opendialog

  Alt 17. Aug 2005, 17:24
laut OH
Delphi-Quellcode:
BlockRead(F, eintrag, 300 * SizeOf(TDaten));
//oder
Var R: Integer; // tatsächlich gelesene Bytes
BlockRead(F, eintrag, 300 * SizeOf(TDaten), R);
laut System.pas
Delphi-Quellcode:
Var R: Integer;
BlockRead(F, @eintrag, 300 * SizeOf(TDaten), R);
Aber vermutlich weren wohl die OH-Varianten genutzt ... das in System.pas ist nur bestimmt nur die CompilerMagic-Variante (CompilerIntern).


Also wird das Erste von OH gut passen Ô.o
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
marcelwhip

Registriert seit: 5. Aug 2005
Ort: Berlin
38 Beiträge
 
Delphi 7 Personal
 
#15

Re: savedialog/opendialog

  Alt 17. Aug 2005, 17:58
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?
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#16

Re: savedialog/opendialog

  Alt 17. Aug 2005, 18:13
Aber sicher gibt es die

Nimm eine Collection, die Colection ist dein Array, dann brauchst du eine Itemklasse, die die Daten enthält, und schon ist alles einfacher
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.080 Beiträge
 
Delphi 12 Athens
 
#17

Re: savedialog/opendialog

  Alt 17. Aug 2005, 18:43
hmmm

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 -.-''
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
marcelwhip

Registriert seit: 5. Aug 2005
Ort: Berlin
38 Beiträge
 
Delphi 7 Personal
 
#18

Re: savedialog/opendialog

  Alt 18. Aug 2005, 15:31

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?
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#19

Re: savedialog/opendialog

  Alt 18. Aug 2005, 17:18
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:
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')
TJsCollection & Co gibt's hier: http://www.delphipraxis.net/internal...ct.php?t=28945

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 ;-)
  Mit Zitat antworten Zitat
marcelwhip

Registriert seit: 5. Aug 2005
Ort: Berlin
38 Beiträge
 
Delphi 7 Personal
 
#20

Re: savedialog/opendialog

  Alt 18. Aug 2005, 18:32
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?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 00:38 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