Rosetta Stone
Introduction
Often, people new to a programming language/library have trouble mapping the things they know how to do in other environments to the new environments.
It can be handy to have a sort of "Rosetta stone" that roughly translates tasks from one environment/language into another.
Programming languages
If you have experience in other programming languages (such as C++, Visual Basic), there are some Rosetta stone web pages that might help you. As FreePascal/Lazarus syntax and library is fairly consistent with Delphi's, sites that "translate" to Delphi are also a valuable resource.
Some useful pages: [1] This page has some explanation of the concepts involved [2] A huge amount of languages, even esoteric, and tasks make this site special
Operating systems
If you know how to do something in an operating system, chances are you can do the same with FPC/Lazarus.
The table below gives a rough mapping of some tasks:
Windows/DOS | Unix/Linux | Description | FreePascal/Lazarus |
copy | cp | Copy file | Lazarus fileutil.copyfile; roll your own with filestreams |
del, erase | rm | Delete file | sysutils.deletefile, erase |
deltree, rmdir /s | rm -r | Remove directories with subdirectories | Lazarus fileutil.deletedirectory |
dir | ls | Find files in a directory | Lazarus FindAllFiles |
mkdir | mkdir | Create directory | mkdir; forcedirectories (creates entire path, if necessary) |
move | mv | Move file to another directory | Within partition/disk: sysutils.renamefile; otherwise copy and delete original |
rename, ren | mv | Rename file | sysutils.renamefile (can also \"move\" file between directories, but only on same partition/disk |
wget, curl | wget, curl | Download file from HTTP/FTP | Multiple optons, e.g. use synapse httpsend or ftpsend units |