Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Typecast samt Dereferenzierung funktionieren nicht! (https://www.delphipraxis.net/19150-typecast-samt-dereferenzierung-funktionieren-nicht.html)

Virchov 30. Mär 2004 09:17


Typecast samt Dereferenzierung funktionieren nicht!
 
Morgen!

An der letzten Zeile weigert sich der Compiler den Typecast + Dereferenzierung von M durchzuführen. Früher, in ähnlichen Fällen, hat es wunderbar jeklappt. Fehlermeldung: UNGÜLTIGE TYPENUMWANDLUNG. Woran könnte das liegen?

Vielen Dank!


Hier ist der Codeausschnitt:
Delphi-Quellcode:

procedure pm1(M: pDouble; rowM, colM: integer; str: array of char);

type darray = array of double;
var i,j: integer;

begin

assignfile(stream,'c:\\larylog.txt');
append(stream);
writeln('*temp. LOGFILE*\n');
writeln('------------ %s --------------\n', str);
for i:=1 to rowM do
  begin
  writeln('[%d][x] = ',i);
  for j:=1 to colM do
    begin
   
  writeln( '%5.4f ', darray (M^)[ i*(colM+1) + j]);
....
....
:gruebel:

maximov 30. Mär 2004 09:41

Re: Typecast funktioniert nicht
 
Moin.

// edit
sorry...hab mist erzählt!

Virchov 30. Mär 2004 09:54

Re: Typecast funktioniert nicht
 
Also, so ging es am Ende. Weiss nicht, ob das genau dasselbe macht, aber es läuft :-)
Delphi-Quellcode:

procedure pm1(M: pDouble; rowM, colM: integer; str: array of char);

var stream: textfile;
i,j: integer;
a: darray;

begin
assignfile(stream,'c:\\larylog.txt');

If IOResult = 0 then

  begin
append(stream);
writeln(stream,'*temp. LOGFILE*\n');
writeln(stream,'------------ %s --------------\n', str);

  inc(M,colM+2);
  for i:=1 to rowM do
    begin
  write(stream,'[%d][x] = ',i);
    for j:=1 to colM do
      begin

      Write(Stream,M^); INC(M);
      Writeln(Stream);
      end;
    end;

  end

  else
  begin
  ShowMessage(' Unable to open logfile Lary   Message ');
  rewrite(Stream);
  Exit
  end;
   closefile(Stream);
end;

Basilikum 30. Mär 2004 15:00

Re: Typecast samt Dereferenzierung funktionieren nicht!
 
versuch's mal, mit folgenden zwei Änderungen:
Delphi-Quellcode:
type
  pdarray = ^darray;
  darray = array[0..0] of double;
und

Delphi-Quellcode:
writeln( '%5.4f ', pdarray (M)^[ i*(colM+1) + j]);

Virchov 30. Mär 2004 15:53

Re: Typecast samt Dereferenzierung funktionieren nicht!
 
Danke Dir!
Einfach und genial! :cheers:


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