# Object TStringView

Description
Hierarchy
Nested Types
Fields
Methods
Properties

## Unit

bbutils

## Declaration

`type TStringView = object(TPcharView)`

## Description

A string view representing a subsequence of a string

See TPCharView and TPointerView for the general concept. `TStringView` keeps a reference to the original string, so it is fully memory safe.

For example, if you have a string '(123)', and want to convert the number between the parentheses to an integer, you can do:

    var
      v: TStringView;
      number: integer;
      ok: boolean;
    begin
      v := '(123)'.view;
      ok := v.rightOfFind('(');
      ok := ok and v.leftOfFind(')');
      ok := ok and v.toIntDecimalTry(number);

## Hierarchy

- TObject
- TPointerView
- TPCharView
- TStringView

## Overview

### Nested Types

| `TSplitOptions = (...);`
| `TStringViewArray = array of TStringView;`

### Methods

| `procedure init(const buffer: string); reintroduce;`
| `function viewLeftWith(newLast: pchar): TStringView; reintroduce;`
| `function viewLeftOf(newEnd: pchar): TStringView; reintroduce;`
| `function viewRightWith(newStart: pchar): TStringView; reintroduce;`
| `function viewRightOf(newStartSkip: pchar): TStringView; reintroduce;`
| `function splitAt(out before: TStringView; element: PChar; out behind: TStringView): boolean;`
| `function splitLeftOf(element: PChar; out behind: TStringView): boolean;`
| `function splitRightOf(out before: TStringView; element: PChar): boolean;`
| `function splitAtFind(out before: TStringView; searched: pchar; searchedLength: SizeInt; out behind: TStringView): boolean;`
| `function splitLeftOfFind(searched: pchar; searchedLength: SizeInt; out behind: TStringView): boolean;`
| `function splitRightOfFind(out before: TStringView; searched: pchar; searchedLength: SizeInt): boolean;`
| `function splitAtFind(out before: TStringView; const searched: string; out behind: TStringView): boolean;`
| `function splitLeftOfFind(const searched: string; out behind: TStringView): boolean;`
| `function splitRightOfFind(out before: TStringView; const searched: string): boolean;`
| `function splitFindToArray(const sep: string; options: TSplitOptions = soNone): TStringViewArray;`

## Description

### Nested Types

| `TSplitOptions = (...);`
###### Values soNone soExcludeEmpty soExcludeLastEmpty

| `TStringViewArray = array of TStringView;`

### Methods

| `procedure init(const buffer: string); reintroduce;`
Creates a view for a string.

| `function viewLeftWith(newLast: pchar): TStringView; reintroduce;`
copy and leftWith.

| `function viewLeftOf(newEnd: pchar): TStringView; reintroduce;`
copy and leftOf.

| `function viewRightWith(newStart: pchar): TStringView; reintroduce;`
copy and rightWith.

| `function viewRightOf(newStartSkip: pchar): TStringView; reintroduce;`
copy and rightOf.

| `function splitAt(out before: TStringView; element: PChar; out behind: TStringView): boolean;`
Splits the view at element. Everything before element is returned in before, everything behind it in behind. self is unchanged.

| `function splitLeftOf(element: PChar; out behind: TStringView): boolean;`
Splits the view at element. Everything before element is returned in self, everything behind it in behind.

| `function splitRightOf(out before: TStringView; element: PChar): boolean;`
Splits the view at element. Everything before element is returned in before, everything behind it in self.

| `function splitAtFind(out before: TStringView; searched: pchar; searchedLength: SizeInt; out behind: TStringView): boolean;`
Splits the view at the first occurrence of searched. Everything before searched is returned in before, everything behind (searched+searchedLength) in behind. Self is unchanged.

| `function splitLeftOfFind(searched: pchar; searchedLength: SizeInt; out behind: TStringView): boolean;`
Splits the view at the first occurrence of searched. Everything before searched is returned in self, everything behind (searched+searchedLength) in behind.

| `function splitRightOfFind(out before: TStringView; searched: pchar; searchedLength: SizeInt): boolean;`
Splits the view at the first occurrence of searched. Everything before searched is returned in before, everything behind (searched+searchedLength) in self.

| `function splitAtFind(out before: TStringView; const searched: string; out behind: TStringView): boolean;`
Splits the view at the first occurrence of searched. Everything before searched is returned in before, everything behind (searched+searchedLength) in behind. Self is unchanged.

| `function splitLeftOfFind(const searched: string; out behind: TStringView): boolean;`
Splits the view at the first occurrence of searched. Everything before searched is returned in self, everything behind searched in behind.

| `function splitRightOfFind(out before: TStringView; const searched: string): boolean;`
Splits the view at the first occurrence of searched. Everything before searched is returned in before, everything behind searched in self.

| `function splitFindToArray(const sep: string; options: TSplitOptions = soNone): TStringViewArray;`

Generated by PasDoc 0.16.0.