Einzelnen Beitrag anzeigen

nahpets
(Gast)

n/a Beiträge
 
#2

Re: Record-Felder in Prozedur ändern?

  Alt 19. Mai 2009, 13:37
Hallo,

das was Du da machst funktioniert nur mit kurzen String, d.H.: Du musst für alle Strings bei der Deklaration eine Längenangabe machen, so wie es in der Typdeklaration von H_TYP gemacht wird.

Vermutlich in der Form (nicht getestet)
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[255] absolute Woher;
    Ziel : String[255] absolute Wohin;
    Dummy : string[255];
begin
    Dummy := Copy(Quelle, 4, 7);
    Ziel := Dummy;
end;

...

// das Hauptprogramm
var H_N : H_Zeiger;
    dummy: string[255];
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;
  Mit Zitat antworten Zitat