Sample code for 30+ languages & platforms
Delphi ActiveX

StringBuilder SetNth

Demonstrates the SetNth method.

Chilkat Delphi ActiveX Downloads

Delphi ActiveX
uses
    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Chilkat_TLB;

...

procedure TForm1.Button1Click(Sender: TObject);
var
sb: TChilkatStringBuilder;
delimiterChar: WideString;
exceptDoubleQuoted: Integer;
exceptEscaped: Integer;

begin
// The SetNth method is handy for setting a part of a delimited string.
// For example:

sb := TChilkatStringBuilder.Create(Self);
sb.Append('red,blue,"green,purple",,yellow');

delimiterChar := ',';
exceptDoubleQuoted := 1;
exceptEscaped := 1;

sb.SetNth(2,'magenta',delimiterChar,exceptDoubleQuoted,exceptEscaped);
// Prints "red,blue,magenta,,yellow"
Memo1.Lines.Add(sb.GetAsString());

sb.SetNth(3,'orange',delimiterChar,exceptDoubleQuoted,exceptEscaped);
// Prints "red,blue,magenta,orange,yellow"
Memo1.Lines.Add(sb.GetAsString());

// What happens if we start with an empty string?
sb.Clear();

sb.SetNth(2,'apple',delimiterChar,exceptDoubleQuoted,exceptEscaped);
// Prints ",,apple"
Memo1.Lines.Add(sb.GetAsString());

sb.SetNth(0,'orange',delimiterChar,exceptDoubleQuoted,exceptEscaped);
// Prints "orange,,apple"
Memo1.Lines.Add(sb.GetAsString());

sb.SetNth(1,'banana',delimiterChar,exceptDoubleQuoted,exceptEscaped);
// Prints "orange,banana,apple"
Memo1.Lines.Add(sb.GetAsString());
end;