Difference between revisions of "File extensions"

From Lazarus wiki
Jump to navigationJump to search
(→‎Project files: Added "format" and "help" columns)
(→‎Project files: Improved extension descriptions)
Line 18: Line 18:
 
| .lpr || Lazarus Program file, contains Pascal source of main program || || pascal
 
| .lpr || Lazarus Program file, contains Pascal source of main program || || pascal
 
|-
 
|-
| .lfm || Lazarus Form file; contains configuration information for all objects on a form (stored in a Lazarus-specific format; the actions are described by Pascal source code in a corresponding .pas file) || || text
+
| .lfm || Lazarus Form file - contains all components and their properties. The source code of the form is located in the PAS-file of the same name. || || text
 
|-
 
|-
| .pas || Unit with Pascal code (typically for a form stored in a corresponding LFM-file) || || pascal
+
| .pas || Unit with Pascal code. It may also contain the code of form (stored in the LFM-file of the same name). || || pascal
 
|-
 
|-
 
| .pp || Pascal code || || pascal
 
| .pp || Pascal code || || pascal
 
|-
 
|-
| .inc || Include file || || pascal
+
| .inc || Include file. Contains a part of Pascal code that can be "included" in the program by the [[$include|{$i} directive]]. Not to be confused with INC-files of other programming languages that use the same extension. || [[$include]] || pascal
 
|-
 
|-
 
| .compiled || Compilation session for a project || || XML
 
| .compiled || Compilation session for a project || || XML
 
|-
 
|-
| .ppu || Unit description file || [https://www.freepascal.org/docs-html/prog/progse65.html] || binary
+
| .ppu || Unit description file. Not to be confused with the compiled unit, which has the extension ".o" || [https://www.freepascal.org/docs-html/prog/progse65.html] || binary
 
|-
 
|-
| .o || (1) Compiled unit, code part.<br /> (2) Compiled code from other compilers (e.g. gcc) || || binary
+
| .o || Compiled unit. Is the result of compilation by FPC (Free Pascal) or any other compiler (e.g. GCC for C++). || || binary
 
|-
 
|-
 
| .or || Object resource, automatically generated from {$R} directive || || binary
 
| .or || Object resource, automatically generated from {$R} directive || || binary
Line 38: Line 38:
 
| .lrs || Lazarus Resource file (this is a generated file; not to be confused with a Windows resource file) || [[Lazarus_Resources|Lazarus Resources]] || text
 
| .lrs || Lazarus Resource file (this is a generated file; not to be confused with a Windows resource file) || [[Lazarus_Resources|Lazarus Resources]] || text
 
|-
 
|-
| .lrt || Lazarus Resourcestring table created when saving a LFM-file and i18n is enabled. It contains the TTranslateString properties of the LFM-file. || ||
+
| .lrt || Lazarus Resource string Table created when saving a LFM-file and i18n is enabled. It contains the TTranslateString properties of the LFM-file. || ||
 
|-
 
|-
| .rst || Resourcestring table created by the compiler for every unit with a resourcestring section || [[Getting_translation_strings_right|Getting translation strings right]] || text
+
| .rst || Resource String Table created by the compiler for every unit with a "resourcestring" section || [[Getting_translation_strings_right|Getting translation strings right]] || text
 
|-
 
|-
| .rsj || Resourcestring table in JSON format created by FPC 2.7.1 for units with resourcestring section || [[Using_resourcestrings|Using resourcestrings]], [https://www.freepascal.org/docs-html/prog/progse39.html] || JSON
+
| .rsj || Resource String table in JSON format created by FPC 2.7.1 for units with "resourcestring" section || [[Using_resourcestrings|Using resourcestrings]], [https://www.freepascal.org/docs-html/prog/progse39.html] || JSON
 
|-
 
|-
 
| .rc || Resource script || [[Lazarus_Resources|Lazarus Resources]] || text
 
| .rc || Resource script || [[Lazarus_Resources|Lazarus Resources]] || text

Revision as of 16:26, 8 December 2023

File extensions

Some file extensions

Lazarus

Project files

extension description help format
.lpg Lazarus Project Group file Project Groups XML
.lpk Lazarus Package file (contains package-specific settings) Lazarus Packages XML
.lpi Lazarus Project Information file (contains project-specific settings) XML
.lps Lazarus Project Session file Project Options XML
.lpr Lazarus Program file, contains Pascal source of main program pascal
.lfm Lazarus Form file - contains all components and their properties. The source code of the form is located in the PAS-file of the same name. text
.pas Unit with Pascal code. It may also contain the code of form (stored in the LFM-file of the same name). pascal
.pp Pascal code pascal
.inc Include file. Contains a part of Pascal code that can be "included" in the program by the {$i} directive. Not to be confused with INC-files of other programming languages that use the same extension. $include pascal
.compiled Compilation session for a project XML
.ppu Unit description file. Not to be confused with the compiled unit, which has the extension ".o" [1] binary
.o Compiled unit. Is the result of compilation by FPC (Free Pascal) or any other compiler (e.g. GCC for C++). binary
.or Object resource, automatically generated from {$R} directive binary
.a (1) Compiled unit, code part for smartlinking (on some platforms)
(2) Compiled code from other compilers (e.g. gcc) linked into a static library
binary
.lrs Lazarus Resource file (this is a generated file; not to be confused with a Windows resource file) Lazarus Resources text
.lrt Lazarus Resource string Table created when saving a LFM-file and i18n is enabled. It contains the TTranslateString properties of the LFM-file.
.rst Resource String Table created by the compiler for every unit with a "resourcestring" section Getting translation strings right text
.rsj Resource String table in JSON format created by FPC 2.7.1 for units with "resourcestring" section Using resourcestrings, [2] JSON
.rc Resource script Lazarus Resources text
.res Compiled resource Lazarus Resources binary
.ico Icon (typically for a program) ico
.gitignore Ignore list of git text

Subversion or Git

These files would normally be stored in a repository as an adequate description of a project:

*.lpi
*.lpr
*.lfm
*.pas
*.pp

These files might contain manually-generated or imported information, or might be regenerated by the IDE or build process. In general, if they have the same basename as the project or a form or unit they're IDE-generated, but in all cases should be reviewed individually:

*.inc
*.res
*.lrs
*.rc
*.ico

These files are regenerated by the IDE or by a build so do not need to be stored:

*.ppu
*.o
*.a
*.lps
*.or
*.rst
*.compiled

Note that *.lrj files are generated for every form while tracking i18n, loss of these files can cause missing translations.

There is an example .gitignore file at [3].

Delphi

Project files

*.dfm
   Delphi form module
*.dof
   Delphi project options file
*.dsk
   Desktop configuration

Converting Delphi projects

Lazarus can convert at least some Delphi project files into its own format.

Application

General

*.txt
   Text file
*.po
   Gettext Portable Object
*.bak
   Backup
*.cfg
   Config file
*.chm
   Compiled Help File - contains html. See also package chm
*.csv
   Comma Separated Values text file format 
*.exe
   Directly executable program
*.hlp
   Help file
*.ini
   Initialization file
*.odt
   OpenDocument text document
*.pdf
   Portable Document Format
*.ps
   PostScript 
*.rtf
   Rich Text Format text file

Image

*.png
   Portable network graphic
*.bmp
   bitmap 
*.ico
   icon 
*.xpm
   pixmap 
*.ppm
   portable pixmap 
*.pgm
   portable graymap 
*.pbm
   portable bitmap 
*.jpg
   compressed image format standardised by the Joint Photographic Experts Group (JPEG)

XML

*.xml
*.dtd
*.xsd
*.xsl

Web

*.html
   Hypertext Markup Language
*.css
   Cascading style sheet

Archive

*.tar
   tape archive
*.zip
   a single file containing one or more compressed files

Database

*.dbf
   Database file
*.mdx
   Multiple index file

Spreadsheet

*.ods
   OpenOffice.org Calc spreadsheet File Format
*.xls  
   Microsoft Excel File Format
*.xlsx  
   Microsoft Office Open XML Excel File Format 

Operating system

Linux and Unix (excluding Darwin)

*.so 
   Shared object library
*.sh
   Shell script
*.deb
   Debian Package
*.rpm
   Red Hat Package Manager

Mac (Darwin)

*.app
   Application bundle (a structured directory)
*.dmg
   Disk Image File 
*.dylib 
   Dynamic shared library
*.framework
   Framework (set of interfaces or subframeworks)
*.icns
   Icon resource file containing one or more images used for an application icon 
*.plist
   Property list file (storage for serialised objects)

Windows

*.bat
   Batch file. It's a text file that contains a sequence of commands for a computer operating system.
*.dll 
  dynamic-link library
*.exe
   Directly executable program

See also

Alphabetical list of file extensions