๐พ Archived View for bbs.geminispace.org โบ s โบ pascal โบ 17038 captured on 2024-06-16 at 16:41:31. Gemini links have been rewritten to link to archived content
โฌ ๏ธ Previous capture (2024-05-26)
โก๏ธ Next capture (2024-07-09)
-=-=-=-=-=-=-
I am looking for a guide to use text files in freepascal. I am looking to make a gemtext to html tool because it sounds like a good project.
The link conversation is going to be a challenge but I am looking forward to it.
May 17 ยท 4 weeks ago ยท ๐ norayr
๐ norayr [mod] ยท May 17 at 11:35:
the old turbo pascal compatible way to do it is this:
$ cat test0.pas
var f: textfile; s: string; begin assign(f, '/etc/passwd'); reset(f); while not eof(f) do begin readln(f, s); writeln(s); end; end.
instead of reset() you can use append() - that would mean that you can write to the end of the file. there is also rewrite() - that means you will erase whatever there is in the file and write to it from the beginning.
these file handling routines are in unit system, which is included in pascal by default, even if you don't add it to uses section.
๐ norayr [mod] ยท May 17 at 11:37:
some links:
โ https://wiki.freepascal.org/Assign
โ https://wiki.freepascal.org/Rewrite
โ https://wiki.freepascal.org/Category:File_Handling
โ https://wiki.freepascal.org/File_Handling_In_Pascal
๐ norayr [mod] ยท May 17 at 11:39:
new, oop way of doing things is via streams:
program InOutStream; {$mode objfpc} uses Classes, SysUtils; var InStream, OutStream: TFileStream; begin if (ParamCount = 2) and FileExists(ParamStr(1)) and FileExists(ParamStr(2)) then begin InStream := TFileStream.Create(ParamStr(1), fmOpenRead); try OutStream := TFileStream.Create(Paramstr(2), fmOpenWrite); try OutStream.Position := OutStream.size; OutStream.CopyFrom(InStream, 0); // appends finally OutStream.Free; end; finally InStream.Free; end; end else Writeln('Usage: inoutstream <infile> <outfile>'); end.
๐ norayr [mod] ยท May 17 at 11:41:
in first old style example you can use read() to read only one character, to create a parser.
๐ norayr [mod] ยท May 17 at 11:42:
โ i found a markdown parser for freepascal.
๐ norayr [mod] ยท May 17 at 11:43:
wow, it also generates html from markdown!
๐ norayr [mod] ยท May 17 at 11:45:
in the demos i see .lpi file, that's a file for a lazarus ide. you can work without the ide, you would need to change the demos to not require graphics at all, and instead of showing graphically, to use input and output files.
๐ MrSVCD [OP] ยท May 17 at 13:23:
Thank you.
If I can make it compatible with Hispeed Pascal for amiga would be a bonus. Hispeed say that they are almost fully TP 5 compatible.
๐ norayr [mod] ยท May 17 at 14:37:
then the first way should work. yes, it would be very cool to have the same source for both amiga and pc. btw, freepascal also can compile for amiga.
contains lots of freepascal amiga demos.