AGB  ·  Datenschutz  ·  Impressum  







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

Typisierte datei anlegen

Offene Frage von "schuetzejanett"
Ein Thema von schuetzejanett · begonnen am 23. Jan 2007 · letzter Beitrag vom 25. Jan 2007
Antwort Antwort
Seite 2 von 2     12   
efknarf

Registriert seit: 13. Jan 2007
Ort: Erfurt
21 Beiträge
 
Delphi 2007 Professional
 
#11

Re: Typisierte datei anlegen

  Alt 24. Jan 2007, 21:50
Huhu,

vielleicht hilft dir das weiter...

Delphi-Quellcode:
type
 TField = record
      x1,y1,x2,y2,x3,y3,x4,y4 : Integer;
      Name :String[4];
 end;

 TFieldFile = File of TField;

procedure DatenSchreiben(const FileName: TFileName);
var F: TFieldFile;
    Buff: TField;
begin
 AssignFile(F,FileName);
 Rewrite(F); //RecSize darf bei einer typisierten Datei nicht angegeben werden
 try
  while NochDatenVorhanden do begin //weitere Daten vorhanden? True! Weiter gehts!!
   Buff.X1:=HoleX1; //functionen, um Integerwerte zu holen
   Buff.X2:=HoleX2;
   Buff.X3:=HoleX3;
   //... usw. bis alle Daten initialisiert wurden
   write(F,Buff);
  end;
 finally
  CloseFile(F);
 end;
end;

procedure DatenLesen(const FileName: TFileName);
var F: TFieldFile;
    Buff: TField;
begin
 AssignFile(F,FileName);
 if FileExists(FileName) then begin //Testen, ob Datei vorhanden ist
  Reset(F);
  try
   while not EOF(F) do begin //Einlesen, bis Dateiende
    Read(F,Buff);
    TueDiesOderDas(Buff); //eingelesene Daten verarbeiten
   end;
  finally
   CloseFile(F);
  end;
end;
Gruß Frank
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#12

Re: Typisierte datei anlegen

  Alt 24. Jan 2007, 22:00
Moin Chemiker,

Zitat von Chemiker:
Das stimmt, aber durch die Verwendung von packed wird der Zugriff auf die Daten verlangsamt.
Aber nur, falls das packed tatsächlich zu einer Änderung der Verteilung führt, allerdings ist es recht gefährlich das packed bei Records wegzulassen, die als Datensatz für eine Datei verwendet werden sollen, da man ansonsten ja auch den Inhalt der Lücken mit abspeichert.
Sollte man nicht daran denken, und das Alignment geändert haben, kann man die Daten u.U. dann auch kaum noch lesen.


Zitat von Chemiker:
Das Auslesen der Werte will schuetzejanett über eine typisierten Datei durchführen, aber die Eingabe soll über einen Texteditor erfolgen.

Und in einem Texteditor werden die Zahlen als Zeichen abgespeichert.
Deshalb schrieb ich ja, dass man Werte < 32 kaum mit einem Texteditor wird eingeben können, ausser vielleicht, man bekommt das mit Unicode hingetrickst. Somit wäre, bei dem gegebenen Satzaufbau, schon die Stringlänge nicht eingebbar.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.142 Beiträge
 
Delphi 10.3 Rio
 
#13

Re: Typisierte datei anlegen

  Alt 25. Jan 2007, 09:14
Zitat von Christian Seehase:

Aber nur, falls das packed tatsächlich zu einer Änderung der Verteilung führt, allerdings ist es recht gefährlich das packed bei Records wegzulassen, die als Datensatz für eine Datei verwendet werden sollen, da man ansonsten ja auch den Inhalt der Lücken mit abspeichert.
Sollte man nicht daran denken, und das Alignment geändert haben, kann man die Daten u.U. dann auch kaum noch lesen.
Eben, daher einfach {$A1} angeben und weiterarbeiten...

Frank
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.859 Beiträge
 
Delphi 11 Alexandria
 
#14

Re: Typisierte datei anlegen

  Alt 25. Jan 2007, 09:42
Hallo,

Zitat von Mavarik:
Eben, daher einfach {$A1} angeben und weiterarbeiten...
Die Angabe {$A1} ist fehlerhaft.

Richtig:

{$A-} ungepackten Record
{$A+} gepackten Record

Ich wollte aber keine Grundsatzdiskussion über packed oder unpacked in einem Record lostreten, sondern nur darauf hinweisen.

Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 08:35 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