t2t-soft

A frequently used Delphi class is TStringList.



using System.Classes;
using System.Sysutils;
using System;
using static D7_string_list.D7_string_listImplementation;
using static D7_string_list.D7_string_listInterface;
using static System.Classes.ClassesInterface;
using static System.SystemInterface;
using static System.Sysutils.SysutilsInterface;

namespace D7_string_list
{


    public class D7_string_listInterface
    {
        public static bool RunStringListChecks()
        {
            bool result = false;
            bool CheckResult1 = false;
            bool CheckResult2 = false;
            bool CheckResult3 = false;
            bool CheckResult4 = false;
            CheckResult1 = CheckStageList();
            result = CheckResult1;
            CheckResult2 = CheckOptionValues();
            result = result && CheckResult2;
            CheckResult3 = CheckDelimitedFields();
            result = result && CheckResult3;
            CheckResult4 = CheckFileRoundTrip();
            result = result && CheckResult4;
            return result;
        }

    } // class D7_string_listInterface

    file class D7_string_listImplementation
    {

        public static bool CheckStageList()
        {
            bool result = false;
            TStringList Stages = default;
            Stages = new TStringList();
            try
            {
                Stages.Add("scan");
                Stages.Add("emit");
                Stages.Insert(1, "validate");
                Stages.Exchange(0, 2);
                result = (Stages.Count == 3) && (Stages[0] == "emit") && (Stages[1] == "validate") 
                         && (Stages[2] == "scan") && (Stages.IndexOf("validate") == 1) && (Stages.IndexOf("missing") == -1);
            }
            finally
            {
                TObject.Free(Stages);
            }
            return result;
        }
    
        public static bool CheckOptionValues()
        {
            bool result = false;
            TStringList Options = default;
            Options = new TStringList();
            try
            {
                Options.WritePropertyValues("mode", "safe");
                Options.WritePropertyValues("workers", "6");
                Options.WritePropertyValues("trace", "off");
                result = (Options.ReadPropertyNames(0) == "mode") && (Options.ReadPropertyValues("mode") == "safe") 
                         && (Options.ReadPropertyValues("workers") == "6") && (Options.ReadPropertyValues("trace") == "off");
            }
            finally
            {
                TObject.Free(Options);
            }
            return result;
        }

        public static bool CheckDelimitedFields()
        {
            bool result = false;
            TStringList Fields = default;
            Fields = new TStringList();
            try
            {
                Fields.Delimiter = ';';
                Fields.QuoteChar = '\"';
                Fields.StrictDelimiter = true;
                Fields.DelimitedText = "alpha;\"two words\";omega";
                result = (Fields.Count == 3) && (Fields[0] == "alpha") && (Fields[1] == "two words") && (Fields[2] == "omega");
            }
            finally
            {
                TObject.Free(Fields);
            }
            return result;
        }

        public static bool CheckFileRoundTrip()
        {
            bool result = false;
            TStringList SourceLines = default;
            TStringList LoadedLines = default;
            string FileName = string.Empty;
            FileName = "d7_string_list.tmp";
            SourceLines = new TStringList();
            LoadedLines = new TStringList();
            try
            {
                SourceLines.Add("first=alpha");
                SourceLines.Add("second=beta");
                SourceLines.SaveToFile(FileName);
                LoadedLines.LoadFromFile(FileName);
                result = (LoadedLines.Count == 2) && (LoadedLines.ReadPropertyValues("first") == "alpha") 
                         && (LoadedLines.ReadPropertyValues("second") == "beta");
            }
            finally
            {
                TObject.Free(LoadedLines);
                TObject.Free(SourceLines);
                if (FileExists(FileName))
                    DeleteFile(FileName);
            }
            return result;
        }
    } // class D7_string_listImplementation

}  // namespace D7_string_list

The code was generated from:


unit d7_string_list;

interface

function RunStringListChecks: Boolean;

implementation

uses
  System.Classes,
  System.SysUtils;

function CheckStageList: Boolean;
var
  Stages: TStringList;
begin
  Stages := TStringList.Create;
  try
    Stages.Add('scan');
    Stages.Add('emit');
    Stages.Insert(1, 'validate');
    Stages.Exchange(0, 2);

    Result :=
      (Stages.Count = 3) and
      (Stages[0] = 'emit') and
      (Stages[1] = 'validate') and
      (Stages[2] = 'scan') and
      (Stages.IndexOf('validate') = 1) and
      (Stages.IndexOf('missing') = -1);
  finally
    Stages.Free;
  end;
end;

function CheckOptionValues: Boolean;
var
  Options: TStringList;
begin
  Options := TStringList.Create;
  try
    Options.Values['mode'] := 'safe';
    Options.Values['workers'] := '6';
    Options.Values['trace'] := 'off';

    Result :=
      (Options.Names[0] = 'mode') and
      (Options.Values['mode'] = 'safe') and
      (Options.Values['workers'] = '6') and
      (Options.Values['trace'] = 'off');
  finally
    Options.Free;
  end;
end;

function CheckDelimitedFields: Boolean;
var
  Fields: TStringList;
begin
  Fields := TStringList.Create;
  try
    Fields.Delimiter := ';';
    Fields.QuoteChar := '"';
    Fields.StrictDelimiter := True;
    Fields.DelimitedText := 'alpha;"two words";omega';

    Result :=
      (Fields.Count = 3) and
      (Fields[0] = 'alpha') and
      (Fields[1] = 'two words') and
      (Fields[2] = 'omega');
  finally
    Fields.Free;
  end;
end;

function CheckFileRoundTrip: Boolean;
var
  SourceLines: TStringList;
  LoadedLines: TStringList;
  FileName: string;
begin
  FileName := 'd7_string_list.tmp';
  SourceLines := TStringList.Create;
  LoadedLines := TStringList.Create;
  try
    SourceLines.Add('first=alpha');
    SourceLines.Add('second=beta');
    SourceLines.SaveToFile(FileName);
    LoadedLines.LoadFromFile(FileName);

    Result :=
      (LoadedLines.Count = 2) and
      (LoadedLines.Values['first'] = 'alpha') and
      (LoadedLines.Values['second'] = 'beta');
  finally
    LoadedLines.Free;
    SourceLines.Free;
    if FileExists(FileName) then
      DeleteFile(FileName);
  end;
end;

function RunStringListChecks: Boolean;
var
  CheckResult1: Boolean;
  CheckResult2: Boolean;
  CheckResult3: Boolean;
  CheckResult4: Boolean;
begin
  CheckResult1 := CheckStageList;
  Result := CheckResult1;

  CheckResult2 := CheckOptionValues;
  Result := Result and CheckResult2;

  CheckResult3 := CheckDelimitedFields;
  Result := Result and CheckResult3;

  CheckResult4 := CheckFileRoundTrip;
  Result := Result and CheckResult4;
end;

end.


   deutsch Deutsch


 
Latest News
09/01/26
Delphi2C# 2.8.0: Fundamentally revised pointer simulation [more...]

05/18/2026
Delphi2C# 2.7.0: Translation heuristics [more...]



"So, all in all we are very pleased with Delphi2C#."


Henk van der Meer
Innomeer 02/02/2023


"Though we have not finished the conversion yet, I'm glad that we've found you and could transform Eurocap to C++ with the help of Delphi2CB and you. (And I'm also glad that we could help you to make Delphi2CB better😉)"


Gáspár Huba


 
This website is generated from plain text with [Minimal Website]

Minimal Website
 
Minimal Website is made with TextTransformer

TextTransformer
 
TextTransformer is made with Borland C++Builder

  Borland