Line too long (5kb --> String)

Arne Buchwald

Erfahrenes Mitglied
Hallo,

ich habe folgendes Problem. Ich muss eine ca. 5kb große Template-Datei in einen String laden. Nachdem das Programm compiliert wurde, kommt natürlich eine Fehlermeldung, dass die Datei zu groß sei ("Line too long").

Hat jemand eine Idee, wie ich das Problem lösen kann?
 
wie hast du die datei denn eingelesen? als textfile mit den 'normalen' methoden (AssignFile, Reset, ReadLn, CloseFile, etc.) oder mit einem stream?
ich würd in jedem fall versuchen, die datei nicht als text-datei sondern binär zu öffnen. das wird zwar etwas mehr arbeit, aber es sollte gehen.
 
Hallo wicked,

also, die Datei habe ich via Stream eingelesen.

Code:
procedure TWM.WM1startAction(Sender: TObject;
  Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
var sl: TStringlist;
  i, j, line_start, line_stop, f_count: integer;
  s, s2, line, head, footer: widestring;
  items: array[0..1000] of string;
  fs: TFileStream;
begin
  try
    fs := TFileStream.Create(Templatedir + '\mainpage.html', fmOpenread or fmShareDenyNone);
    try
      SetLength(S, fs.Size);
      fs.ReadBuffer(S[1], fs.Size);
    finally
      fs.Free;
    end;
  except
    Error.HTMLDoc.Clear;
    Error.HTMLDoc.Add('Mainpage-Template konnte nicht geöffnet werden!');
    Response.Content := Error.Content;
  end;

  line_start := pos('<!--line-->', s) + 11;
  line_stop := pos('<!--end-->', s);
  line := copy(s, line_start, line_stop - line_start);
  head := copy(s, 1, line_start - 11);
  footer := copy(s, line_stop + 10, length(s));
  
  [...]
Wenn ich hier den Anfangsteil der Variablen line zuweisen will, spuckt der Compiler die Fehlermeldung aus.
 
Zurück