{"id":42679676,"url":"https://github.com/simatic-ax/string-builder","last_synced_at":"2026-01-29T11:49:39.380Z","repository":{"id":256204847,"uuid":"835712248","full_name":"simatic-ax/string-builder","owner":"simatic-ax","description":"The library @simatic-ax/string-builder implements a StringBuilder class featuring a fluent interface. This allows users to chain string operations.","archived":false,"fork":false,"pushed_at":"2026-01-16T12:53:43.000Z","size":81,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-17T03:36:31.565Z","etag":null,"topics":["iec-st","library","siemens","simatic-ax"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/simatic-ax.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-07-30T11:38:33.000Z","updated_at":"2026-01-16T12:53:47.000Z","dependencies_parsed_at":"2024-12-13T14:28:14.644Z","dependency_job_id":"5db055ff-2304-41bd-971f-36f9f888c93c","html_url":"https://github.com/simatic-ax/string-builder","commit_stats":null,"previous_names":["simatic-ax/string-builder"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/simatic-ax/string-builder","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simatic-ax%2Fstring-builder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simatic-ax%2Fstring-builder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simatic-ax%2Fstring-builder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simatic-ax%2Fstring-builder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/simatic-ax","download_url":"https://codeload.github.com/simatic-ax/string-builder/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simatic-ax%2Fstring-builder/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28876845,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-29T10:31:27.438Z","status":"ssl_error","status_checked_at":"2026-01-29T10:31:01.017Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["iec-st","library","siemens","simatic-ax"],"created_at":"2026-01-29T11:49:38.808Z","updated_at":"2026-01-29T11:49:39.364Z","avatar_url":"https://github.com/simatic-ax.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# @simatic-ax/string-builder\n\n## Description\n\nThe package @simatic-ax/string-builder provides a StringBuilder class that implements a fluent interface. This allows users to chain string operations.\u003cbr\u003e\u003cbr\u003e\nThe construction of composite strings follows a pattern which is closer to natural speech compared with the conventional string operations (e.g. `CONCAT`). The readability of string operations is improved by using the package.\n\n## Getting started\n\nInstall with Apax:\n\n\u003e If not yet done login to the GitHub registry first.\n\u003e More information you'll find [here](https://github.com/simatic-ax/.github/blob/main/docs/personalaccesstoken.md)\n\n```cli\napax add @simatic-ax/string-builder\n```\n\nAdd the namespace in your ST code:\n\n```iec-st\nUSING Simatic.Ax.Strings;\n```\n\n## Objects\n\nUML Diagram\n\n```mermaid\nclassDiagram\n    class StringBuilder\n        StringBuilder : -_string STRING\n    interface IConstrainedStringBuilder\n        IConstrainedStringBuilder : +Reset IConstrainedStringBuilder\n        IConstrainedStringBuilder : +Append IStringBuilder\n        IConstrainedStringBuilder : +ToString() STRING \n    interface IStringBuilder\n        IStringBuilder : +Insert() IStringBuilder\n        IStringBuilder : +Remove() IStringBuilder\n        IStringBuilder : +Substring() IStringBuilder\n        IStringBuilder : +StartOf() IStringBuilder\n        IStringBuilder : +EndOf() IStringBuilder\n        IStringBuilder : +Replace() IStringBuilder\n    IConstrainedStringBuilder \u003c|-- IStringBuilder\n    StringBuilder ..|\u003e IStringBuilder\n```\n\n### Interfaces\n\n[IStringBuilder](./docs/IStringBuilder.md)\u003cbr/\u003e\n[IConstrainedStringBuilder](./docs/IConstrainedStringBuilder.md)\u003cbr/\u003e\n\n### Classes\n\n[StringBuilder](./docs/StringBuilder.md)\n\n### Methods\n\n| Name       | Description                      |\n| ----       | :--------------------------------------- |\n| `Reset`    | Reset the current string to an empty string|\n| `Append`   | Append the text to the current string and return it|\n| `Insert`   | Insert the text at a specific location in the string and return it|\n| `Remove`   | Remove characters from the string and return it|\n| `Substring`| Retrieve a specific part of the string and return it|\n| `StartOf`  | Retrieve the start of a string and return it|\n| `EndOf`    | Retrieve the end of a string and return it|\n| `Replace`  | Replace characters in a string and return it|\n| `ToString` |  Return the current string|\n\n## Example\n\n### Configuration\n\n```st\nCONFIGURATION MyConfiguration\n\n    TASK Main(Interval := T#100ms, Priority := 1);\n    PROGRAM P1 WITH Main: MyProgram;\n\n    VAR_GLOBAL\n        diagnosticMessage  : STRING;\n    END_VAR\n\nEND_CONFIGURATION\n```\n\n### Program\n\n```st\nUSING Simatic.Ax.Strings\nPROGRAM MyProgram\n\n    VAR_EXTERNAL\n        diagnosticMessage : STRING;\n    END_VAR\n\n    VAR\n        _sb : StringBuilder;\n    END_VAR\n\n    diagnosticMessage := _sb.Append('build a string').Append(' by chaining methods.').Insert('How to ',0).ToString();\n    // result : \"How to build a string by chaining methods.\"\n    \nEND_PROGRAM\n```\n\n## Contribution\n\nThanks for your interest in contributing. Anybody is free to report bugs, unclear documentation, and other problems regarding this repository in the Issues section or, even better, is free to propose any changes to this repository using Merge Requests.\n\n## Markdownlint-cli\n\nThis workspace will be checked by the [markdownlint-cli](https://github.com/igorshubovych/markdownlint-cli) (there is also documented ho to install the tool) tool in the CI workflow automatically.\nTo avoid, that the CI workflow fails because of the markdown linter, you can check all markdown files locally by running the markdownlint with:\n\n```sh\nmarkdownlint **/*.md --fix\n```\n\n## License and Legal information\n\nPlease read the [Legal information](LICENSE.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimatic-ax%2Fstring-builder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsimatic-ax%2Fstring-builder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimatic-ax%2Fstring-builder/lists"}