![]() |
Delphi-Version: XE
TFilestream.Size zu groß unter Windows 7
Hallo zusammen!
TFilestream.Size liefert unter Windows 7 nicht den gleichen Wert wie unter Windows XP. Die Datei hat laut HxD-Editor 783 Bytes. Windows XP und auch Windows 7 zeigen unter den Dateieigenschaften 784 Bytes an. TFilestream.Size liefert unter XP 780 Bytes, unter Windows 7 784 Bytes. Zu allem Überfluss liefert der folgende Code unter Windows 7 auch 780 Bytes:
Delphi-Quellcode:
Was stimmt den nun? 783 Bytes scheinen plausibel da HxD 0x30F (783) anzeigt, wenn ich den Cursor auf das letzte Byte stelle. Mein Programm läuft aber seit Tag und Jahr problemlos unter Windows XP, also mit 780 Bytes. Irgendwelche Ideen?
try
iFileHandle := SysUtils.FileOpen(FileName, fmOpenRead); iFileLength := SysUtils.FileSeek(iFileHandle,0,2); finally FileClose(iFileHandle); end; - arno |
AW: TFilestream.Size zu groß unter Windows 7
Hallo,
Zitat:
Gruß xaromz |
AW: TFilestream.Size zu groß unter Windows 7
Zitat:
Aber wie kommen dann die 780 Bytes zustande? |
AW: TFilestream.Size zu groß unter Windows 7
Hallo,
vielleicht spielt BOM (Byte Order Mark; 3Byte) eine Rolle? ..noch einen schönen ersten Advent Klaus |
AW: TFilestream.Size zu groß unter Windows 7
Da gibts doch diesen Unicode-Prefix, hat der vielleicht etwas damit zu tun?
Wieso verwendest Du nicht die FileSize-Funktion? Eventuell ist die abwärtskompatibel. |
AW: TFilestream.Size zu groß unter Windows 7
Zitat:
Zitat:
Gleichfalls noch einen schönen 1. Advent ... arno |
AW: TFilestream.Size zu groß unter Windows 7
Die alten Pascal-Funktionen kennen kein Unicode ... auch unter D2009+ sind und bleiben sie ANSI (da Emba dieses aus Kompatiblitätsgründen so belassen hat, oder sie hatten einfach keine Lust, sie zu erweitern)
Hast du mal soeine Datei für uns? (auch wenn ich mir nicht vorstellen kann, daß der Dateiinhalt irgendeinen einfluß auf den TFileStream haben sollte) |
AW: TFilestream.Size zu groß unter Windows 7
Von was für einer Datei reden wir hier eigentlich?
|
AW: TFilestream.Size zu groß unter Windows 7
Hallo zusammen!
um es kurz zu machen, das Problem lag weder an Windows 7 noch an TFileStream, es lag bzw. saß vor dem Bildschirm... Unsere Software wird auf Windows 7 gehoben. Bei der Datei handelt es sich um eine Lizenzdatei, eine Binärdatei mit teils verschlüsselten und auch unverschlüsselten Datenbereichen. In der Windows 7 Umgebung bekam ich immer einen CRC Fehler - und zwar vollkommen zurecht, es war eine Testdatei - allerdings habe ich beim Vergleich mit Windows XP angenommen dieselben Dateien zu vergleichen. Dem war leider nicht so. Immerhin hat die Fehlersuche etwas Gutes. Die Implementation von TFilestream in D2007 unterscheidet sich nicht grundlegend von der in DXE. Und offensichtlich arbeitet EMBA an der Crossplattform-Fähigkeit
Delphi-Quellcode:
unit Classes;
// Delphi 2007 {$IFDEF MSWINDOWS} uses Windows, Messages, SysUtils, Variants, TypInfo, ActiveX; {$ENDIF} {$IFDEF LINUX} uses Libc, SysUtils, Variants, TypInfo, Types; {$ENDIF} // Delphi XE {$IFDEF MSWINDOWS} Windows, Messages, ActiveX, {$ENDIF MSWINDOWS} {$IFDEF POSIX} Types, PosixSysTypes, PosixUniStd, PosixSignal, {$ENDIF POSIX} {$IFDEF MACOS} CoreServices, {$ENDIF MACOS} SysUtils, Variants, TypInfo; Danke für euer Feedback, arno |
AW: TFilestream.Size zu groß unter Windows 7
Zitat:
Erst mit Delphi XE2 kommt wieder Plattformunabhängigkeit ins spiel. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:26 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