我是delphi的初学者,我遇到了终结错误e2155.我正在使用RAD 10并尝试在移动设备上运行我的程序.它在我的Windows机器上工作正常,但是当我改为Android或IOS时,它给了我终结错误.
代码:
type TRaumparameter = record ID : string; Länge: string; Breite: string; Höhe: string; Fläche: string; Raumvolumen: string; Wände: string; Decke: string; Boden: string; Baujahr: string; Heizlast: string; end; var Aufstellraum: Traumparameter; { Public declarations } end; var Form1: TForm1; implementation {$R *.fmx} {$R *.iPad.fmx IOS} procedure TForm1.speichernClick(Sender: TObject); var F: File of Traumparameter; begin Aufstellraum.Länge:=form2.Länge.Text; Aufstellraum.Breite:=form2.Breite.Text; Aufstellraum.Höhe:=form2.Höhe.Text; Aufstellraum.Fläche:=form2.Fläche.Text; Aufstellraum.Raumvolumen:=form2.ErgebnisRaumVol.Text; Aufstellraum.Wände:=form2.Wände.Text; Aufstellraum.Decke:=form2.Decke.Text; Aufstellraum.Baujahr:=form2.Baujahr.Selected.Text; Aufstellraum.Heizlast:=form2.Heizlast.Text; try AssignFile(F,'D:\test\1.txt'); ReWrite(F); Write(F,Aufstellraum); finally CloseFile(F); end; end;
我已经尝试用[]来限制字符串的长度,但它告诉我:';' 预期,但'''发现.希望我能得到一些答案,因为我安静了一段时间没有任何成功.提前致谢!!
当您尝试编写包含String
类型的记录文件时,编译器不允许:
E2155类型'%s'需要最终确定 - 文件类型不允许(Delphi)
String是需要完成的数据类型之一,因此它们不能存储在File类型中
String
无论如何,使用二进制文件类型编写带有字段的记录是没有意义的,因为您将编写地址而不是文本(字符串是引用类型).
当您声明具有专用长度的字符串时,它们被称为ShortString(值类型).ShortString
但是,移动编译器不支持.
我建议你使用其他技术来存储文本.例如,了解如何将记录转换为文本json
.