<html><head><meta http-equiv="Content-Type" content="text/html; charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">I use this function to read a file into a string:<div class=""><br class=""></div><div class=""><div class=""><font face="Monaco" class=""><span style="font-style: normal; font-size: 12px;" class="">function ReadFile(const FileName: TFileName): String;</span></font></div><div class=""><font face="Monaco" class=""><span style="font-style: normal; font-size: 12px;" class="">var</span></font></div><div class=""><font face="Monaco" class=""><span style="font-style: normal; font-size: 12px;" class="">  InputFile: THandle;</span></font></div><div class=""><font face="Monaco" class=""><span style="font-style: normal; font-size: 12px;" class="">  FileSize, BytesRead: Integer;</span></font></div><div class=""><font face="Monaco" class=""><span style="font-style: normal; font-size: 12px;" class="">  Buffer: String='';</span></font></div><div class=""><font face="Monaco" class=""><span style="font-style: normal; font-size: 12px;" class="">begin</span></font></div><div class=""><font face="Monaco" class=""><span style="font-style: normal; font-size: 12px;" class="">  try</span></font></div><div class=""><font face="Monaco" class=""><span style="font-style: normal; font-size: 12px;" class="">    InputFile := FileOpen(FileName, fmOpenRead);</span></font></div><div class=""><font face="Monaco" class=""><span style="font-style: normal; font-size: 12px;" class="">    if InputFile = -1 then</span></font></div><div class=""><font face="Monaco" class=""><span style="font-style: normal; font-size: 12px;" class="">      begin</span></font></div><div class=""><font face="Monaco" class=""><span style="font-style: normal; font-size: 12px;" class="">        WriteLn(Format('Error opening file "%s".', [FileName]));</span></font></div><div class=""><font face="Monaco" class=""><span style="font-style: normal; font-size: 12px;" class="">        Halt; // Exit?</span></font></div><div class=""><font face="Monaco" class=""><span style="font-style: normal; font-size: 12px;" class="">      end;</span></font></div><div class=""><font face="Monaco" class=""><span style="font-style: normal; font-size: 12px;" class=""><br class=""></span></font></div><div class=""><font face="Monaco" class=""><span style="font-style: normal; font-size: 12px;" class="">    FileSize := FileSeek(InputFile, 0, fsFromEnd);</span></font></div><div class=""><font face="Monaco" class=""><span style="font-style: normal; font-size: 12px;" class="">    SetLength(Buffer, FileSize);</span></font></div><div class=""><font face="Monaco" class=""><span style="font-style: normal; font-size: 12px;" class="">    FileSeek(InputFile, 0, fsFromBeginning);</span></font></div><div class=""><font face="Monaco" class=""><span style="font-style: normal; font-size: 12px;" class=""><br class=""></span></font></div><div class=""><font face="Monaco" class=""><span style="font-style: normal; font-size: 12px;" class="">    BytesRead := FileRead(InputFile, Buffer[1], FileSize);</span></font></div><div class=""><font face="Monaco" class=""><span style="font-style: normal; font-size: 12px;" class=""><br class=""></span></font></div><div class=""><font face="Monaco" class=""><span style="font-style: normal; font-size: 12px;" class="">    if BytesRead < FileSize then</span></font></div><div class=""><font face="Monaco" class=""><span style="font-style: normal; font-size: 12px;" class="">      begin</span></font></div><div class=""><font face="Monaco" class=""><span style="font-style: normal; font-size: 12px;" class="">        WriteLn(Format('Error reading file "%s".', [FileName]));</span></font></div><div class=""><font face="Monaco" class=""><span style="font-style: normal; font-size: 12px;" class="">        Halt; // Exit?</span></font></div><div class=""><font face="Monaco" class=""><span style="font-style: normal; font-size: 12px;" class="">      end;</span></font></div><div class=""><font face="Monaco" class=""><span style="font-style: normal; font-size: 12px;" class=""><br class=""></span></font></div><div class=""><font face="Monaco" class=""><span style="font-style: normal; font-size: 12px;" class="">    Result := Buffer;</span></font></div><div class=""><font face="Monaco" class=""><span style="font-style: normal; font-size: 12px;" class="">  finally</span></font></div><div class=""><font face="Monaco" class=""><span style="font-style: normal; font-size: 12px;" class="">    FileClose(InputFile);</span></font></div><div class=""><font face="Monaco" class=""><span style="font-style: normal; font-size: 12px;" class="">  end;</span></font></div><div class=""><font face="Monaco" class=""><span style="font-style: normal; font-size: 12px;" class="">end;</span></font></div><div class=""><br class=""></div><div><br class=""><div class="">On 6 Oct 2020, at 09:25, Luca Olivetti via fpc-pascal <<a href="mailto:fpc-pascal@lists.freepascal.org" class="">fpc-pascal@lists.freepascal.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="">El 6/10/20 a les 9:01, Michael Van Canneyt via fpc-pascal ha escrit:<br class=""><br class=""><blockquote type="cite" class="">A simple filecreate, allocate buffer, fileread, fileclose will probably be easiest.<br class=""></blockquote><br class="">Lazarus has a ReadFileToString in fileutil.<br class=""><br class="">Bye<br class="">-- <br class="">Luca<br class=""><br class="">_______________________________________________<br class="">fpc-pascal maillist  -  <a href="mailto:fpc-pascal@lists.freepascal.org" class="">fpc-pascal@lists.freepascal.org</a><br class=""><a href="https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal" class="">https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal</a><br class=""></div></div></div><br class=""></div></body></html>