Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Prism Typisierte Datei unter Delphi 8 öffnen (https://www.delphipraxis.net/16093-typisierte-datei-unter-delphi-8-oeffnen.html)

gerritlober 10. Feb 2004 10:38


Typisierte Datei unter Delphi 8 öffnen
 
Hallo,

ich versuche mit folgendem Qelltext eine Variable
unter Delphi 8 zu deklarieren, leider bekomme ich die Fehler-
meldung Spach-Feature wird nicht unterstützt: typisierte und untypisierte Datei.

Delphi-Quellcode:
var TerminFile: File of TTerminData;
Was kann ich da machen um eine Datei zu öffnen? :wiejetzt:

Chewie 10. Feb 2004 10:46

Re: Typisierte Datei unter Delphi 8 öffnen
 
Delphi 8 benutzt ausschließlich das .NET-Framework. Schau dir mal den Namespace System.IO an, der enthält Klassen zum Umgang mit Dateien.

stoxx 10. Feb 2004 12:43

Re: Typisierte Datei unter Delphi 8 öffnen
 
Zitat:

Zitat von Chewie
Delphi 8 benutzt ausschließlich das .NET-Framework. Schau dir mal den Namespace System.IO an, der enthält Klassen zum Umgang mit Dateien.

wie ?? ich muss meine ganzen Quelltexte umschreiben ? ups ...
Hab D8 nicht. Habe aber mal gelesen, dass man alles in unsafe packen könnte, was unsicheren Code darstellt. Geht das in dem Fall nicht ?

Chewie 10. Feb 2004 12:51

Re: Typisierte Datei unter Delphi 8 öffnen
 
Keine Ahnung. Ich habe auch kein Delphi8 und weiß nicht, welche Sprachelemente nicht mehr zulässig sind. Aber typisierte Dateien als "unsafe" zu deklarieren, sofern das in Delphi.NET überhaupt geht, wäre einen Versuch wert.

Bernd Ua 10. Feb 2004 18:32

Re: Typisierte Datei unter Delphi 8 öffnen
 
File of Type geht auch in unsafe Blöcken nicht.
Da nur der JIT-Compiler die genaue Datengrösse
(die je nach Zielsystem anders ein kann) kennt, kann
der Delphi Compiler File of Type nicht mehr unterstützen
auch nicht in unsafe Blöcken.

Bernd

gerritlober 10. Feb 2004 21:06

Re: Typisierte Datei unter Delphi 8 öffnen
 
Danke Bernd,

aber wie kann ich denn nun ungefähr die selbe Lösung finden?

Bernd Ua 10. Feb 2004 23:06

Re: Typisierte Datei unter Delphi 8 öffnen
 
Im .NET System würde man die Daten in eine Klasse verpacken und nicht in einen Record
und diese Klasse dann mit Attribut Serializable kennzeichnen.
Dann kann die Klasse über die Methode Serialize eines Formatters
(zb BinaryFormatter) in einen Dateistream geschrieben werden

Bernd

stoxx 10. Feb 2004 23:11

Re: Typisierte Datei unter Delphi 8 öffnen
 
es gibt kein TFileStream mehr ???
und was mach ich, wenn ich nicht die ganze Datei mit einem Mal in den Speicher laden kann weil sie zu groß ist ?


.

Bernd Ua 10. Feb 2004 23:18

Re: Typisierte Datei unter Delphi 8 öffnen
 
TFilestream gäbe es auch noch. Der liest unter .NET auch ein Array of Byte ein -
nur musst du dann die Bytes wieder in den record prökeln...
Einfach so in Buffer vom Typ Pointer einlesen geht nicht - wegen der Typisierung
des .NET Systems

stoxx 10. Feb 2004 23:22

Re: Typisierte Datei unter Delphi 8 öffnen
 
Zitat:

Zitat von Bernd Ua
TFilestream gäbe es auch noch. Der liest unter .NET auch ein Array of Byte ein -
nur musst du dann die Bytes wieder in den record prökeln...
Einfach so in Buffer vom Typ Pointer einlesen geht nicht - wegen der Typisierung
des .NET Systems

na das ist ja schonma positiv. mit Blockread hantiere ich im Moment eh schon.
gibt es dann file of byte ?
oder ist File of generell gesperrt ?

Danke !

Bernd Ua 10. Feb 2004 23:28

Re: Typisierte Datei unter Delphi 8 öffnen
 
Zitat:

na das ist ja schonma positiv. mit Blockread hantiere ich im Moment eh schon
BlockRead ? Kann das sein, dass das mit Pointern arbeitet ? :lol: Vergiss einfach
sowas wie BlockRead/BlockWrite/GetMem/FreeMem/untypsierte Var-Parameter etc pp unter .NET

Zitat:

gibt es dann file of byte ?
Nee - Schon bei File gibt eine Compilerfehlermeldung Sprachfeature wird nicht unterstützt

Bernd

stoxx 11. Feb 2004 02:35

Re: Typisierte Datei unter Delphi 8 öffnen
 
Code:
BlockRead ? Kann das sein, dass das mit Pointern arbeitet ?  :lol: Vergiss einfach
sowas wie BlockRead/BlockWrite/GetMem/FreeMem/untypsierte Var-Parameter etc pp unter .NET

Sind denn generell alle Pointer verboten, oder nur untypisierte ?

Funktioniert das Beispiel Grabline im Link noch, wenn man mit unsafe arbeitet ?

http://www.swissdelphicenter.ch/de/showcode.php?id=1628


Danke !

Bernd Ua 11. Feb 2004 07:41

Re: Typisierte Datei unter Delphi 8 öffnen
 
untypisierte Pointer sind verboten. Pointer an sich gibt es noch
und in unsafe Abschnitten ist auch Pchar möglich.

Das Beispiel funktioniert nicht, u.a. wegen ReadBuf

Bernd


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:44 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