Einzelnen Beitrag anzeigen

ernschd

Registriert seit: 16. Jan 2008
166 Beiträge
 
Delphi XE8 Professional
 
#1

Record-Felder in Prozedur ändern?

  Alt 19. Mai 2009, 13:27
Hi,

ich bin mal wieder dran, ein altes Pascal in Delphi umzusetzen.
Natürlich funktioniert der Code im Original, nur enthalten die Felder in meinem "neuen" Code unsinnige Werte.

Delphi-Quellcode:
// der Record
type H_TYP = record
    H24 : String [7];
    H25 : String [30];
    H26 : Byte;
end;

type H_Zeiger = ^H_Typ;

// mein Sorgenkind
procedure changeH(var Woher; var Wohin);
var Quelle : String absolute Woher;
    Ziel : String absolute Wohin;
    Dummy : string;
begin
    Dummy := Copy(Quelle, 4, 7);
    Ziel := Dummy;
end;

...

// das Hauptprogramm
var H_N : H_Zeiger;
    dummy: string;
begin

    // wird nur zum Testen verwendet
    dummy := 'dasisteinsuperlangerstring';

    H_N := Nil;
    New(H_N);
    with H_N^ do begin
       H24 := ''; H25 := '';
       changeH(dummy,H24);
    end;
    Dispose(H_N);
end;
H24 enthält nun irgendwelche Ansammlungen von Zeichen, aber keinesfalls den gewünschten Teil des Strings ('isteins').

Was mache ich falsch? Wenn ich H24 durch eine Hilfsvariable ersetzte, dann klappt alles wunderbar.
Leider ist das aber in meinem Programm nicht möglich, da sich der Feldtyp im Record jedesmal ändert.

Vielen Dank.

Ernschd
  Mit Zitat antworten Zitat