![]() |
AW: Datei mit FileStream auslesen
Auch wenn es mit dem Fehler nichts direkt zu tun hat:
Zusätzlich zu den genannten Dingen solltest du dir vielleicht überlegen, deinen Record-Typ nicht bytes zu nennen. Ich weiss, standardmäßig ist bytes nicht definiert, aber der Name wäre mir zu generisch und würde mir Bauchschmerzen in Hinblick auf die Zukunft bereiten. Eventuell kommt es irgendwann deswegen zu sehr merkwürdigen Fehlern, die man nicht mehr wirklich versteht, ähnlich wie wenn man reserved words von SQL-Datenbanken als Feldnamen benutzt oder Vergleichbares. Zudem kommt, dass der Name so wenig aussagekräftig ist, dass du vielleicht in einem halben Jahr nicht mehr weisst, warum das Ding "bytes" heisst, obwohl es ja die Struktur einer definierten Datei angibt und nicht nur "irgendwelche Bytes". Nenn das Ding lieber nach dem Typ der Datei, je nachdem was es ist. Also zum Beispiel: CustomerFileBytes TCustomerFileBytes oder was weiss ich sonst :) |
AW: Datei mit FileStream auslesen
Zitat:
|
AW: Datei mit FileStream auslesen
Rüschtüsch...also gleich mal den Vorschlag korrigieren :)
|
AW: Datei mit FileStream auslesen
Delphi-Quellcode:
:mrgreen:
type
TEinEindeutigerNameOhneVerwechslungsgefahr = record |
AW: Datei mit FileStream auslesen
Hi,
danke für eure Tipps. Habe es umbenannt, nur ist das leider nicht mein Problem... Ich möchte nochmal nachhaken : Ist TFilestream tatsächlich die einzige Variante, derartige Dateien auszulesen ? tschüß |
AW: Datei mit FileStream auslesen
Nö, TMemoryStream z.B. ginge auch. Was wohl nicht (so einfach) geht, ist das althergebrachte satzweise Lesen, da die Größe des Blocks ja variiert.
|
AW: Datei mit FileStream auslesen
Wie sieht denn dein Code nun aktuell aus?
PS:
Code:
Hier ließt man ein WORD, aber die Variable ist nur ein BYTE groß.
Read(ds.Length_of_Reserve_string[i],sizeof(word));
|
AW: Datei mit FileStream auslesen
Zitat:
|
AW: Datei mit FileStream auslesen
@DeddyH,
ich denke, ich habe euren Rat befolgt. Jetzt sieht der code so aus : . . . Length_of_Reserve_string : array[1..32] of word; . . .
Delphi-Quellcode:
Ist das so o.k. ? Könnte daraus ein Zugriff auf eine 'falsche'Speicheradresse erfolgen ?
for i:=1 to 32 do begin
Read(ds.Length_of_Reserve_string[i],sizeof(word)); SetLength(ds.Reserve_string[i], ds.Length_of_Reserve_string[i]); Read(ds.Reserve_string[i][1], ds.Length_of_Reserve_string[i]); end; tschüß |
AW: Datei mit FileStream auslesen
@Deddy: Dich kann man aber auch leicht übersehn.
Oder gibt's hier doch eine verteckte und ausversehen aktivierte "Ignorierenfunktion"? @delphinewbie: Die Art der Änderung kommt auch mit auf die Datei an. Wenn in der Datei nur 1 Byte drinsteht, dann hilft es nichts, wenn beim Auslesen nun alles einheitlich 2 Byte (Word) ist. Ideal wäre es wirklich, wenn man nochmal alles komplett, inkl. einer Beispieldatei oder der Deklarantion der Speicherroutine sehn könnte. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:27 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 by Thomas Breitkreuz