Ich mache gerade eine Einheits-Bibliothek in Pascal. Ich würde gerne wissen, ob ich eine sehr lange Zeichenfolge zuweisen könnte, ohne Ansistring oder {$ H +} zu verwenden, da ich typisierte Dateien nicht mit Referenzzählertypen zuordnen konnte. Danke schonmal.
EDIT: Code hinzugefügtPascal: schreibe eine sehr lange Zeichenkette ohne Referenzzählertypen (zB: anisstring)
type
dataFilm = record
title : array [1..255] of char;
genre : array [1..255] of char;
viewerRating : array [1..255] of char;
duration : integer;
synopsis : array [1..2000] of char;
priceWeekdays : longint;
priceWeekend : longint;
end;
theatreUDT = record
mainDataFilm : array [0..100] of dataFilm;
end;
ftheatreUDT = record
fmainDataFilm : file of dataFilm; //It fails here when i use ansistring
end;
procedure loadMain(var main : theatreUDT; var fmain:ftheatreUDT);
begin
assign(fmain.fmainDataFilm,'Data/dataFilm.dat');
reset(fmain.fmainDataFilm);
end;
Das Programm hat kein Problem, nur, es eine sehr lange Zeichenfolge für Synopse nicht halten kann.
Ich glaube nicht, dass SetLength für mich funktioniert, denn wenn ich versuche, die Datei auszudrucken, wurde sie irgendwo ausgeschnitten. –
Ich denke, Sie möchten möglicherweise vermeiden, Legacy I/O zu verwenden und feststellen, dass sich Ihre Probleme auflösen. Es ist Zeit, die 80er Jahre hinter sich zu lassen. –
@DavidHeffernan Sorry, aber ich weiß nicht viel über Pascal. Ich bekam eine Zuweisung, um .dat I/O in Pascal zu machen, aber eine Datei hat eine sehr lange Zeichenkette. Ich hatte überhaupt keine Ahnung, wie ich das ohne Anisstring machen könnte, weil typisierte Dateien nicht mit Referenzzählern wie Ansistring zugewiesen werden konnten. –