{"id":13698382,"url":"https://github.com/sbcgua/text2tab","last_synced_at":"2025-10-24T05:30:27.008Z","repository":{"id":46602347,"uuid":"65610470","full_name":"sbcgua/text2tab","owner":"sbcgua","description":"TAB-delimited text parser for ABAP","archived":false,"fork":false,"pushed_at":"2025-01-22T07:25:52.000Z","size":289,"stargazers_count":24,"open_issues_count":6,"forks_count":10,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-01-30T22:51:36.474Z","etag":null,"topics":["abap","abap-data-parser","hacktoberfest","parsing","text-parser"],"latest_commit_sha":null,"homepage":"","language":"ABAP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sbcgua.png","metadata":{"files":{"readme":"README.md","changelog":"changelog.txt","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-08-13T09:37:35.000Z","updated_at":"2025-01-22T07:24:32.000Z","dependencies_parsed_at":"2023-11-07T19:38:02.323Z","dependency_job_id":"e9dff1c5-a875-4533-b513-85c2ced3511e","html_url":"https://github.com/sbcgua/text2tab","commit_stats":{"total_commits":190,"total_committers":8,"mean_commits":23.75,"dds":"0.13684210526315788","last_synced_commit":"3f2955e6bf49b5b0782796d2722b4b59733af87e"},"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sbcgua%2Ftext2tab","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sbcgua%2Ftext2tab/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sbcgua%2Ftext2tab/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sbcgua%2Ftext2tab/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sbcgua","download_url":"https://codeload.github.com/sbcgua/text2tab/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237915423,"owners_count":19386724,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["abap","abap-data-parser","hacktoberfest","parsing","text-parser"],"created_at":"2024-08-02T19:00:45.198Z","updated_at":"2025-10-24T05:30:27.003Z","avatar_url":"https://github.com/sbcgua.png","language":"ABAP","readme":"# ABAP text2tab parser and serializer (ex. Abap data parser)\n\n![abaplint](https://github.com/sbcgua/text2tab/workflows/abaplint/badge.svg)\n![Version](https://img.shields.io/github/v/tag/sbcgua/text2tab.svg)\n\nTAB-delimited text parser and serializer for ABAP\n\n- [Documentation](https://sbcgua.github.io/text2tab) (or also [here](./docsite/docs))\n- [Blog articles](https://sbcgua.github.io/text2tab/blog)\n- [Change log](./changelog.txt)\n\n## Synopsis\n\nText2tab is an utility to **parse** TAB-delimited text into an internal table of an arbitrary flat structure.\n\n- supports \"non-strict\" mode which allows to skip fields in the source data (for the case when only certain fields are being loaded).\n- supports \"header\" specification as the first line in the text - in this case field order in the text may differ from the internal abap structure field order.\n- supports loading into a structure (the first data line of the text is parsed).\n- supports *type-less* parsing, when the data is not checked against existing structure but dynamically create as a table with string fields.\n- supports specifying date and amount formats\n- supports on-the-fly field name remapping (e.g. field `FOO` in the parsed text move to `BAR` component of the target internal table)\n- supports \"deep\" parsing - filling structure or table components in the target data container\n- supports \"corresponding\" parsing - filling only those fields which are in target structure. Kind of opposite to \"non-strict\" feature above.\n\nAnd vice versa - **serialize** flat table or structure to text.\n\n- support specifying date and amount formats, and line-break symbol\n\nThe package also contains 2 **examples** (see [examples](./src/examples) sub-package):\n\n- `ZTEXT2TAB_EXAMPLE` - simple parsing code\n- `ZTEXT2TAB_BACKUP_EXAMPLE` - example of DB table backup with serializer\n\n## Documentation\n\nPlease find the [complete documentation](https://sbcgua.github.io/text2tab/docs) at our github pages site. The documentation includes infromation about installation, examples of usages and library API.\n\n## Example of usage\n\nSource text file (CRLF as a line delimiter, TAB as a field delimiter)\n\n```text\nNAME     BIRTHDATE\nAlex     01.01.1990\nJohn     02.02.1995\nLara     03.03.2000\n```\n\nSimple parsing code\n\n```abap\ntypes:\n  begin of my_table_type,\n    name      type char10,\n    birthdate type datum,\n  end of my_table_type.\n\ndata lt_container type my_table_type.\n\nzcl_text2tab_parser=\u003ecreate( lt_container )-\u003eparse(\n  exporting\n    i_data      = my_get_some_raw_text_data( )\n  importing\n    e_container = lt_container ).\n```\n\n... or a more complex one ...\n\n```abap\ntypes:\n  begin of my_table_type,\n    name      type char10,\n    city      type char40, \" \u003c\u003c\u003c New field, but the text still contains just 2 !\n    birthdate type datum,\n  end of my_table_type.\n\n...\n\nzcl_text2tab_parser=\u003ecreate(\n    i_pattern       = lt_container   \" table or structure\n    i_amount_format = ' .'           \" specify thousand and decimal delimiters\n  )-\u003eparse( \n    exporting \n      i_data      = my_get_some_raw_text_data( )\n      i_strict    = abap_false       \" text may contain not all fields (city field will be skipped)\n      i_has_head  = abap_true        \" headers in the first line of the text\n    importing \n      e_container = lt_container ).  \" table or structure (first data line from text)\n```\n\n## License\n\nThe code is licensed under MIT License. Please see the [LICENSE](/LICENSE) for details.\n","funding_links":[],"categories":["Categories"],"sub_categories":["🗒️ eMail \u0026 Document Processing"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsbcgua%2Ftext2tab","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsbcgua%2Ftext2tab","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsbcgua%2Ftext2tab/lists"}