Clarion is a 4GL programming language and database system known for rapid application development. It has been used extensively for business applications, particularly in vertical market software.
What You Can Upload
.TPSTopSpeed database files.DATClarion data files, with their.MEMmemo files- ZIP archive containing complete file sets
What You Get Out
DataMeans converts your data into multiple modern formats:
| Output | Description |
|---|---|
csv/{TableName}.csv | One CSV file per table with all row data |
xlsx/{TableName}.xlsx | Excel workbook per table (omitted for tables over 1,048,575 rows, 16,384 columns or 8,000,000 cells - see note below) |
xls/{TableName}.xls | Legacy Excel format per table (omitted for tables over 65,535 rows, 256 columns or 150,000 cells - see note below) |
json/{TableName}.json | JSON array of records per table |
json/{TableName}.jsonl | Newline-delimited JSON (streaming-friendly) |
postgres.sql | PostgreSQL CREATE TABLE + INSERT statements |
mysql.sql | The same schema and rows, in MySQL dialect |
sqlite.sql | The same schema and rows, in SQLite dialect |
ansi.sql | The same schema and rows, in portable ANSI SQL |
sqlserver.sql | The same schema and rows, in SQL Server (T-SQL) dialect |
report.json | Structured conversion report |
report.md | Human-readable conversion summary |
How to Export / Obtain Files
- Locate your Clarion application's data directory
- Copy the
.TPSor.DATdata files - Include the
.MEMmemo file for each.DATthat has one, with the same name as its.DAT(CUSTOMER.DATandCUSTOMER.MEM) - Create a ZIP archive with all files
- Upload the ZIP to DataMeans
Supported Features
- TopSpeed
.TPSand Clarion.DATfiles - TopSpeed files checked value for value against two independent TopSpeed readers on real files, and
Clarion 2.x
.DATfiles checked against a real sample set that includes owned and encrypted files - Field names and types from the files themselves, with no dictionary needed
- A TopSpeed table the file does not name (every single-table file: it is called "UNNAMED") takes the name of the file you upload
- A preview that shows the real columns, the exact number of records and the first rows of each table (for TopSpeed files up to 64 MB)
- Rows in the order your application added them
- Negative packed
DECIMALamounts keep their sign, in TopSpeed and.DATfiles alike, and TopSpeed 32-bit floating-point values are shown as written (0.1, not0.10000000149011612) - Memo fields as text, in a column of their own after the record's other fields: TopSpeed memos from
the file itself,
.DATmemos from the.MEMfile with the same name (each.DATin a ZIP gets its own). TopSpeed BLOB fields as base64 bytes .DATfiles marked as owned or encrypted (Clarion'sOWNERandENCRYPTattributes) are read without a password: the format keeps the key that scrambles them in the file itself- A
.DATtable is named after its file, where the file only holds the label of its record (RECORD) - TopSpeed arrays (
DIM) become one column per element (CODE_1,CODE_2, ...). AGROUPbecomes its fields, and a group that is itself an array has its fields repeated for each instance (SKU_1,QTY_1,SKU_2,QTY_2) - Clarion dates and times converted to standard dates and times
Known Limitations
- Keys and indexes (
.K*files) are not carried over - Password-protected (encrypted) TopSpeed
.tpsfiles cannot be read: remove the password in Clarion first. A password-protected.tpshas no readable header, so DataMeans reports that this is what it most likely is (or that the file is damaged) rather than that it is not a Clarion file - A
.DATwith aDECIMALof an even number of digits (for exampleDECIMAL(10,2)) is read with its spare half-byte as a leading zero; the sample files only have odd digit counts, so check such a column against your application - In TopSpeed files, a time of exactly zero is read as blank: the file stores midnight and "no time" the same way
- In TopSpeed files, a date or time that is not a real one (month 13, 30 February) is kept exactly as stored, in a text column, and the report names it
NaNand infinite floating-point values in TopSpeed files cannot be carried to the outputs: they are left empty and the report says how many- Some legacy character encodings may need adjustment
- Very large tables (1M+ rows) may take extended processing time
Note on the Excel formats. An
.xlsxsheet holds at most 1,048,575 rows of data and 16,384 columns, and a legacy.xlssheet 65,535 rows and 256 columns. Rather than ship a file that looks complete but is silently cut short, DataMeans leaves a table out of any Excel format it does not fit and notes it in the job report. The.xlsxcopy is also left out for tables of more than 8,000,000 cells (1,048,575 rows of 12 columns is 12.6 million), which take too long and too much memory to write, and the.xlscopy for tables of more than 150,000 cells, which the legacy format takes far too long to write. The CSV, JSON and SQL outputs always contain every row.
Overview
Clarion is a fourth-generation programming language and database development environment designed for rapid application development. It includes proprietary ISAM file formats and a file-driver layer that also connects applications to external file formats and SQL databases. Clarion emphasizes visual development with template-driven code generation and centralized data dictionary management.
History and Background
- 1986: Clarion 1.0 released for DOS by Bruce Barrington's Barrington Systems, using the proprietary
.DATISAM format. - 1988: Clarion Professional Developer (CPD) 2.0 introduces the Designer, a data dictionary, and model-file code generation.
- 1992: Clarion Software merges with compiler maker Jensen & Partners International (JPI); the combined company becomes TopSpeed Corporation.
- 1993: Clarion Database Developer (CDD) 3.0 replaces model files with extensible templates and compiles to native machine code.
- 1995: Clarion for Windows 1.0 ships in January; the single-file TopSpeed (
.TPS) format debuts the same year with Clarion for DOS 3.1. - 1997: Clarion 4 introduces the Application Builder Classes (ABC) template set and class library.
- 1998: Clarion 5 released, splitting the product into Professional and Enterprise editions.
- 2000: The Clarion product line moves from TopSpeed Corporation to SoftVelocity; Clarion 5.5 adds interfaces to the language's OOP support.
- 2003: Clarion 6.0 adds preemptive multithreading.
- 2009: Clarion 7 ships with a new SharpDevelop-based IDE and an MSBuild-based build system.
- 2011: Clarion 8 released in September, continuing the Clarion 7 series.
- 2014: Clarion 9.1 reaches gold release in August.
- 2015: Clarion 10 released, with the IDE reworked to run on .NET Framework 4.
- 2018: Clarion 11 released with faster builds and touch-input support.
- 2025: Clarion 12 released.
File Format Specifications
Database Files:
.TPS: TopSpeed database files (primary format; data, keys, and memos in one file).DAT: Clarion DOS data files (original ISAM format).Knn: Index files accompanying.DATdatabases (.K01,.K02, etc.).MEM: Memo field storage accompanying.DATdatabases
File Structure:
- Single-file design: data records, memo data, key indexes, and table definitions stored together
- File header occupying the first 0x200 bytes, with the
tOpSsignature at offset 0x0E - Page-based storage, with pages aligned on 256-byte boundaries and grouped into blocks
- Optional run-length encoding (RLE) compression of pages, applied when a page's stored length differs from its uncompressed length
- Records tagged by type code: 0xF3 for data records, 0xFA for table definitions, 0xFC for memos
- Table-definition records describing each field's offset, length, and data type
- Multi-byte values stored little-endian, except record numbers, which are big-endian
- Optional encryption of file contents
Key Components:
- Data dictionary: Centralized schema management
- Templates: Code generation for common patterns
- Applications: Generated programs compiled to native executables
- Reports: Formatted output definitions
- Forms: User interface designs
Data Types and Structures
| Type | Size | Description |
|---|---|---|
| STRING | Declared length | Fixed-length text strings, space-padded |
| CSTRING | Declared length | Null-terminated text strings |
| PSTRING | Declared length | Length-prefixed text strings |
| BYTE | 1 byte | Unsigned 8-bit integer |
| SHORT | 2 bytes | Signed 16-bit integer |
| LONG | 4 bytes | Signed 32-bit integer |
| USHORT | 2 bytes | Unsigned 16-bit integer |
| ULONG | 4 bytes | Unsigned 32-bit integer |
| SREAL | 4 bytes | Single precision floating point |
| REAL | 8 bytes | Double precision floating point |
| BFLOAT4 | 4 bytes | Signed floating point, Microsoft BASIC single-precision format |
| BFLOAT8 | 8 bytes | Signed floating point, Microsoft BASIC double-precision format |
| DECIMAL | Variable | Signed packed decimal numbers |
| PDECIMAL | Variable | Btrieve-compatible signed packed decimal, maximum 31 digits |
| DATE | 4 bytes | Date values |
| TIME | 4 bytes | Time values |
| BLOB | Variable | Binary large objects |
| MEMO | Variable | Large text fields |
Database Objects:
- Tables: Primary data containers with fields and records
- Keys: Indexed fields for fast record access
- Relationships: Parent-child links with referential integrity rules defined in the dictionary
- Queues: In-memory data structures
- Views: Virtual composites of related files supporting join operations
Version Differences
| Version | Year | Key Features | File Format |
|---|---|---|---|
| Clarion 1.0 | 1986 | Screen designer, interpreter, debugger | .DAT proprietary ISAM |
| CPD 2.0 | 1988 | Designer, data dictionary, model files | .DAT with .Knn index and .MEM memo files |
| CDD 3.0 | 1993 | Templates, machine-code compiler, file drivers | New field types: CSTRING, PSTRING, DATE, TIME |
| Clarion for DOS 3.1 | 1995 | TopSpeed file driver | .TPS single-file format introduced |
| Clarion for Windows 1.0 | 1995 | Windows GUI, multithreaded MDI, ODBC | No native format change |
| Clarion 4 | 1997 | ABC templates and class library | No format change |
| Clarion 5 | 1998 | Professional and Enterprise editions | No format change |
| Clarion 5.5 | 2000 | Interfaces added to OOP support | No format change |
| Clarion 6.0 | 2003 | Preemptive multithreading | No format change |
| Clarion 7 | 2009 | SharpDevelop-based IDE, MSBuild | No format change |
| Clarion 8 | 2011 | Continuation of the Clarion 7 series | No format change |
| Clarion 10 | 2015 | IDE reworked to run on .NET Framework 4 | No format change |
| Clarion 11 | 2018 | Faster builds, touch-input support | No format change |
Compatibility Notes:
- Clarion 7 and later are backward compatible with releases back to Clarion for Windows 1.5
- The TopSpeed driver stores data, memos, and all key indexes in a single disk file
- Applications predating the TopSpeed driver use the
.DAT/.Knn/.MEMfile set - File drivers also access Btrieve, dBase, FoxPro, and Paradox files, plus SQL databases via ODBC and native drivers
- 16-bit executable targets were dropped with Clarion 6.0; Clarion 6.3 was the final 16-bit IDE
- The four-byte
DATEandTIMEfield types match the corresponding Btrieve Record Manager field formats - Clarion standard dates count days elapsed since December 28, 1800 (valid range January 1, 1801 to December 31, 9999); standard times count hundredths of a second since midnight, plus one
Technical References
What can I convert Clarion files to?
DataMeans converts Clarion files to clean CSV, Excel, JSON & SQL. Each table is exported as its own file, alongside a structured report of exactly what was extracted.
Do I need Clarion installed to open my files?
No. DataMeans reads Clarion files directly, so you don't need Clarion, a license, or any other legacy software to recover your data.
Can I preview my Clarion data before paying?
Yes. DataMeans shows your extracted tables and rows in the browser first, so you only pay when you're ready to download the full CSV, Excel, JSON & SQL export.
Is my data secure?
Yes. Your files are encrypted in transit and at rest, and they're deleted automatically: within 7 days if you don't go ahead with a conversion, and when your download window ends if you do. We never sell or share your data, and we never use it to train machine-learning models.