Du brauchst dir dann doch nur ein kleines Programm zum Konvertieren der Pläne erstellen.
Mit D4 ein Konvertierungsprogramm erstellen und dieses über deine Dateien laufen lassen
und in TD fängst du dann gleich mit dem "neuen" Record an.
[add] oder wie grenzgaenger schon erwähnte gleich alles in ein anderes Format ... z.B.
XML)
Von den Daten her ist mein Recordvorschlag ja identisch zu Deinem.
Delphi-Quellcode:
initStruct_alt = record
VersionTcd : string[30]; (* Version der Schaltplandatei *)
MaxSeite : integer; (* Anzahl der Seiten *)
AnbindungsFarbe : tcolor; (* Farbe der Anbindungspunkte *)
HintergrundFarbe : tcolor; (* Bildschirmhintergrundfarbe *)
RectWahlColor : tcolor; (* Farbe des Auswahl Rechtecks *)
PfadAnzahl : integer; (* Anzahl der Pfade pro Seite *)
KYpos : UU; (* y Lage des Kontaktspiegels *)
DruckLinienStaerke : integer;(* Linienstaerke beim Ausdruck *)
AnbindungenZeichnen : boolean; (* Anbindungen werden gezeichnet *)
EinfuegePunkteZeichnen : boolean; (* Einfügepunkte werden gezeichnet *)
JpgSchraffur : boolean; (* bei true wird Jpg als Schraffur gezeichnet *)
xyJpg : boolean; (* Jpg in Rechteck eingepasst *)
xJpg : boolean; (* Jpg wird auf x-Maße angepasst *)
yJpg : boolean; (* Jpg wird auf y-Maße angepasst *)
RasterMarkerSize : integer; (* Groesse des Raster in Pixel *)
EinfuegePktMarkerSize : integer; (* Größe der Einfügepunkt Marker in Pixel *)
EinfuegePktMarkerWidth : integer; (* Liniendicke Marker Einfuegepunkte *)
EinfuegePktMarkerColor : tcolor; (* Farbe Marker der EinfuegePunkte *)
KontaktSpiegelColor : tcolor; (* Farbe der Kontaktspiegel *)
KontaktSpiegelWidth : UU; (* Linienstärke Kontaktspiegel *)
VerweisColor : tcolor; (* Farbe der Quer und Rückverweise *)
VerweisWidth : UU; (* Linienstärke Verweise *)
vlength : UU; (* Länge der Anbindungspunkte *)
UText : array[1..20] of string[50];
ReserveStr1 : string[255];
ReserveStr2 : string[255];
ReserveStr3 : string[255];
ReserveStr4 : string[255];
ReserveStr5 : string[255];
ReserveStr6 : string[255];
ReserveStr7 : string[255];
ReserveStr8 : string[255];
ReserveStr9 : string[255];
ReserveStr10 : string[255];
ReserveStr11 : string[100];
ReserveStr12 : string[100];
ReserveStr13 : string[100];
ReserveStr14 : string[100];
ReserveStr15 : string[100];
ReserveStr16 : string[100];
ReserveStr17 : string[100];
ReserveStr18 : string[100];
ReserveStr19 : string[100];
ReserveStr20 : string[100];
ReserveInt1 : integer;
ReserveInt2 : integer;
ReserveInt3 : integer;
ReserveInt4 : integer;
ReserveInt5 : integer;
ReserveInt6 : integer;
ReserveInt7 : integer;
ReserveInt8 : integer;
ReserveInt9 : integer;
ReserveInt10 : integer;
ReserveInt11 : integer;
ReserveInt12 : integer;
ReserveInt13 : integer;
ReserveInt14 : integer;
ReserveInt15 : integer;
ReserveInt16 : integer;
ReserveDU1 : DU;
ReserveDU2 : DU;
ReserveDU3 : DU;
ReserveDU4 : DU;
ReserveDU5 : DU;
ReserveDU6 : DU;
ReserveDU7 : DU;
ReserveDU8 : DU;
ReserveDU9 : DU;
ReserveDU10 : DU;
ReserveDU11 : DU;
ReserveDU12 : DU;
ReserveDU13 : DU;
ReserveDU14 : DU;
ReserveDU15 : DU;
ReserveDU16 : DU;
ReserveUU1 : UU;
ReserveUU2 : UU;
ReserveUU3 : UU;
ReserveUU4 : UU;
ReserveUU5 : UU;
ReserveUU6 : UU;
ReserveUU7 : UU;
ReserveUU8 : UU;
ReserveUU9 : UU;
ReserveUU10 : UU;
ReserveUU11 : UU;
ReserveUU12 : UU;
ReserveUU13 : UU;
ReserveUU14 : UU;
ReserveUU15 : UU;
ReserveUU16 : UU;
ReserveBit1 : Boolean;
ReserveBit2 : Boolean;
ReserveBit3 : Boolean;
ReserveBit4 : Boolean;
ReserveBit5 : Boolean;
ReserveBit6 : Boolean;
ReserveBit7 : Boolean;
ReserveBit8 : Boolean;
ReserveBit9 : Boolean;
ReserveBit10 : Boolean;
ReserveBit11 : Boolean;
ReserveBit12 : Boolean;
ReserveBit13 : Boolean;
ReserveBit14 : Boolean;
ReserveBit15 : Boolean;
ReserveBit16 : Boolean;
ReserveColor1 : TColor;
ReserveColor2 : TColor;
ReserveColor3 : TColor;
ReserveColor4 : TColor;
ReserveColor5 : TColor;
ReserveColor6 : TColor;
ReserveColor7 : TColor;
ReserveColor8 : TColor;
ReserveColor9 : TColor;
ReserveColor10 : TColor;
ReserveColor11 : TColor;
ReserveColor12 : TColor;
ReserveColor13 : TColor;
ReserveColor14 : TColor;
ReserveColor15 : TColor;
ReserveColor16 : TColor;
end;
InitStruct = packed Record
VersionTcd : String[30]; (* Version der Schaltplandatei *)
MaxSeite : LongInt; (* Anzahl der Seiten *)
AnbindungsFarbe : TColor; (* Farbe der Anbindungspunkte *)
HintergrundFarbe : TColor; (* Bildschirmhintergrundfarbe *)
RectWahlColor : TColor; (* Farbe des Auswahl Rechtecks *)
PfadAnzahl : LongInt; (* Anzahl der Pfade pro Seite *)
KYpos : UU; (* y Lage des Kontaktspiegels *)
DruckLinienStaerke : LongInt; (* Linienstaerke beim Ausdruck *)
AnbindungenZeichnen : Boolean; (* Anbindungen werden gezeichnet *)
EinfuegePunkteZeichnen : Boolean; (* Einfügepunkte werden gezeichnet *)
JpgSchraffur : Boolean; (* bei true wird Jpg als Schraffur gezeichnet *)
xyJpg : Boolean; (* Jpg in Rechteck eingepasst *)
xJpg : Boolean; (* Jpg wird auf x-Maße angepasst *)
yJpg : Boolean; (* Jpg wird auf y-Maße angepasst *)
RasterMarkerSize : LongInt; (* Groesse des Raster in Pixel *)
EinfuegePktMarkerSize : LongInt; (* Größe der Einfügepunkt Marker in Pixel *)
EinfuegePktMarkerWidth : LongInt; (* Liniendicke Marker Einfuegepunkte *)
EinfuegePktMarkerColor : TColor; (* Farbe Marker der EinfuegePunkte *)
KontaktSpiegelColor : TColor; (* Farbe der Kontaktspiegel *)
KontaktSpiegelWidth : UU; (* Linienstärke Kontaktspiegel *)
VerweisColor : TColor; (* Farbe der Quer und Rückverweise *)
VerweisWidth : UU; (* Linienstärke Verweise *)
vlength : UU; (* Länge der Anbindungspunkte *)
UText : packed Array[1..20] of String[50];
ReserveStr : packed Array[1..20] of String[255];
ReserveInt : packed Array[1..16] of LongInt;
ReserveDU : packed Array[1..16] of DU;
ReserveUU : packed Array[1..16] of UU;
ReserveBit : packed Array[1..16] of Boolean;
ReserveColor : packed Array[1..16] of TColor;
end;
Delphi-Quellcode:
Var alt: initStruct_alt;
neu: InitStruct;
BlockRead(DateiAlt, alt, 1);
neu.VersionTcd := alt.VersionTcd;
neu.MaxSeite := alt.MaxSeite;
neu.AnbindungsFarbe := alt.AnbindungsFarbe;
...
neu.ReserveColor[14] := alt.ReserveColor14;
neu.ReserveColor[15] := alt.ReserveColor15;
neu.ReserveColor[16] := alt.ReserveColor16;
BlockWrite(DateiNeu, neu, 1);