AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi 2009 und Datei I/O bzw. "absolute" hat sich geändert?
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi 2009 und Datei I/O bzw. "absolute" hat sich geändert?

Ein Thema von Poolspieler · begonnen am 19. Jul 2009 · letzter Beitrag vom 19. Jul 2009
 
Poolspieler

Registriert seit: 9. Aug 2004
165 Beiträge
 
Delphi 10.3 Rio
 
#1

Delphi 2009 und Datei I/O bzw. "absolute" hat sich

  Alt 19. Jul 2009, 14:53
Hallo,
ich habe mir gerade die Trial von Delphi 2009 installiert.
Mein Delphiprojekt (BDS2006) funktionierte bisher Fehlerfrei.
Unter Delphi 2009 gibt es aber Probleme:

Problem1 mit Datei I/O:
Delphi-Quellcode:
function TTest.daten_aus_datei_lesen(_dateiname: string): string;
var
  _daten: string;
  F: file of char; // wenn ich F zum Typ TextFile mache, dann geht es
  c: char;
begin
  try
    AssignFile(F, _dateiname);
    Reset(F);
    _daten := '';
    while not eof(f) do begin
      Read(F, c); // hier werden ZWEI Bytes gelesen - obwohl F doch vom Typ char ist...??? Verstehe ich nicht!
      _daten := _daten + c;
    end;
    CloseFile(F);
  except
    _daten := '';
  end;
  Result := _daten;
end;
Da ich hier bereits einen Workaround hätte handelt es sich eher um eine Verständnisfrage. Dass es hier nicht sonderlich elegant ist, jedes einzelne Zeichen zu lesen, ist mir klar. Aber ich verwende dieses Read-Konstrukt auch für andere binäre Daten, die dann sofort Byteweise verarbeitet werden...

Problem2 (ohne Lösung):
Dieser Code ist nicht von mir persönlich geschrieben - deshalb tue ich mich mit dem Debugging auch erstmal schwer. (Ich habe bisher auch noch keine absolute-Anweisungen verwendet... Wobei S ja eigentlich einfach auf Source "zeigen" sollte...)
Delphi-Quellcode:
procedure RCxDecode(var RCx: TRCxContext; const Source; var Dest; Count: Integer);
var
  S: TByteArray absolute Source; // ich denke, dass das Problem mit dieser absolute Anweisung zu tun hat
  O: TByteArray absolute Dest;
  C: Integer;
  T,K: Byte;
begin
  with RCx do
    for C := 0 to Count -1 do
    begin
      Inc(I);
      T := D[I];
      Inc(J, T);
      D[I] := D[J] xor F;
      D[J] := T - F;
      Inc(T, D[I]);

      K := S[C] xor D[T]; // wenn ich hier einen Breakpoint setze, dann kann S nicht angezeigt werden - weil wegoptimiert
      O[C] := K;
      F := F xor K;
    end;
end;
Wie gesagt, unter BDS2006 läuft alles bestens - unter Delphi 2009 nicht. Hat jemand eine Idee?
Ausser BDS2006 weiter zu verwenden...

Gruß,
Poolspieler
Andreas
  Mit Zitat antworten Zitat
 


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 01:56 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