Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Records (https://www.delphipraxis.net/90287-records.html)

Sharky 2. Mai 2007 05:19

Re: Records
 
Hai The Lord,

kannst Du das Bild bitte als Anhang an dein Posting hängen? Nicht jeder hat eine DSL-Leitung und möchte sich um den Thread lesen zu können eine 100 kByte Datei runterladen müssen.

Danke.

CCRDude 2. Mai 2007 08:34

Re: Records
 
Hab schon Ewigkeiten nur noch mit Streams bzw. vorher BlockRead/BlockWrite gearbeitet, aber kann es nicht sein, daß das eigentlich so lauten müsste?
Delphi-Quellcode:
reWrite(f, SizeOf(TDatensatz));

Klaus01 2. Mai 2007 09:17

Re: Records
 
Zitat:

Zitat von CCRDude
Hab schon Ewigkeiten nur noch mit Streams bzw. vorher BlockRead/BlockWrite gearbeitet, aber kann es nicht sein, daß das eigentlich so lauten müsste?
Delphi-Quellcode:
reWrite(f, SizeOf(TDatensatz));

Nicht zwingend, denn wenn die Datei existiert kann eine typisierte Datei auch mit reset zum Schreiben geöffnet werden.
Es kann nur mit reset keine Datei erstellt werden.

Grüße
KLaus

CCRDude 2. Mai 2007 09:57

Re: Records
 
Ich glaub Du hast den springenden Punkt übersehen: die Größe der Datensätze anzugeben hat null zu tun damit, ob die Dateien existieren. Daß der Parameter für die Datensatzgröße auch für Reset und nicht nur für Rewrite zu verwenden ist, hatte ich jetzt als selbstverständlich angesehen ;)

Oder willst Du damit sagen, daß ein Reset die Größe automatisch errät? Da das aber nicht am Dateiinhalt liegen könnte, verstehe ich auch dann nicht, warum Du auf den Hinweis zwischen Reset und Rewrite hinweist, schließlich müsste Rewrite die dann auch wissen :shock:

Klaus01 2. Mai 2007 10:13

Re: Records
 
Hallo CCRDude,
nun Deinen springenden Punkt habe ich nicht gesehen.

Zitat:

Zitat von CCRDude
Oder willst Du damit sagen, daß ein Reset die Größe automatisch errät? Da das aber nicht am Dateiinhalt liegen könnte, verstehe ich auch dann nicht, warum Du auf den Hinweis zwischen Reset und Rewrite hinweist, schließlich müsste Rewrite die dann auch wissen

Hier noch ein Zitat aus der Delphi Hilfe:
Zitat:

RecSize is an optional expression, which can be specified only if F is an untyped file. If F is an untyped file, RecSize specifies the record size to be used in data transfers. If RecSize is omitted, a default record size of 128 bytes is assumed.
Da "The Lord" mit typisierten Dateien arbeitet ist die Angabe der RecSize, bei Reset und Rewrite, nicht notwendig.

Grüße
Klaus

CCRDude 2. Mai 2007 10:27

Re: Records
 
Ah ok, sorry, hab wie gesagt schon ewig nicht mehr auf diese Weise Dateien angefasst, war daher nur ne entfernte Idee ;)

The Lord 2. Mai 2007 13:43

Re: Records
 
Zitat:

Zitat von Sharky
Hai The Lord,

kannst Du das Bild bitte als Anhang an dein Posting hängen? Nicht jeder hat eine DSL-Leitung und möchte sich um den Thread lesen zu können eine 100 kByte Datei runterladen müssen.

Danke.


Ich kann nur 24h lang den Beitrag editieren. Tut mir leid! Muss vielleicht ein Moderator das Bild zu einem Link machen!


Und gibt es schon eine Lösung für das Problem? :(

The Lord 3. Mai 2007 11:50

Re: Records
 
Endlich! Ich habe es jetzt geschafft. Habe einfach alles von vorne gemacht und es funktioniert. Aber trotzdem bedanke ich mich natürlich für eure Bemühungen :)


:dp:

magsec_87 7. Jul 2007 16:10

Re: Records
 
Hallo ich habe genau so ein problem, nur dass bei mir immer angezeigt wird: "Datezugriff Verweigert"

Ich hab keine Ahnung woran das liegen könnte!!



Delphi-Quellcode:
type woerterbuch = record
            de: array[1..5] of string[25];
            en: array[1..5] of string[25];
            end;
     vokabellist = record
            de: array[1..5] of string[25];
            en: array[1..5] of string[25];
            gewesen : boolean;
            klasse : word;
            end;

var
 
  l        : TListItem;
  datei_name: string;
  data     : woerterbuch;
  woerter  : file of woerterbuch;
  vlist    : file of vokabellist;

  loades   : record
            de     : array[1..5] of string[25];
            en     : array[1..5] of string[25];
            gewesen : boolean;
            klasse : word;
            end;

Delphi-Quellcode:
assignFile(woerter,'Datenbank.rec');
  for i:=1 to 5 do
    begin
    data.de[i]:=loades.de[i];
    data.en[i]:=loades.en[i];
    write(woerter,data);
    end;
  reset(woerter);

  with listview1.items.add do
    begin
    if (sprache1_lbl.Caption='Deutsch') then
      begin
      l.Caption:=ltempd;
      l.SubItems.Add(ltempe);
      end;
    if (sprache1_lbl.Caption='Englisch') then
      begin
      l.Caption:=ltempe;
      l.SubItems.Add(ltempd);
      end;
Kann mir vielleicht jemand helfen???
Danke!

mfg
magsec_87

grenzgaenger 7. Jul 2007 18:34

Re: Records
 
sag mal, wo kommt denn der fehler???

hab meine kristallkugel, leider in der firma gelassen...


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:26 Uhr.
Seite 3 von 4     123 4      

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