VB到Delphi字符串操作代码转换

pau*_*aul 0 delphi text-manipulation

我有一些VB源代码,并希望将其转换为Delphi:

Do While Not EOF(textfile)
Line Input #textfile, Line

Dim retstring() As String         
retstring = Split(Line, Chr(32))
first  = retstring(0)
second = retstring(1)
Run Code Online (Sandbox Code Playgroud)

我有一些文本文件与这些类似的行:

hello all
nice to
good day

我在答案中尝试了一些源代码,但仍然遇到问题.我看到消息'你好'和'很好',但实际上我想看到'你好'和'全'而不是.

procedure TForm1.BitBtn1Click(Sender: TObject);
var
  list : TStringList;
  first, second, third: string;
begin
  list := TStringList.Create;
  try
    list.Delimiter := #32;
    list.LoadFromFile('test.txt');
    first := list[0];
    second := list[1];
    ShowMessage(first);
    ShowMessage(second);
  finally
    list.Free;
  end;
end;
Run Code Online (Sandbox Code Playgroud)

RRU*_*RUZ 8

您可以使用TStringList类拆分文本文件.

看这个例子:

program SplitTextFile;

{$APPTYPE CONSOLE}

uses
  Classes,
  SysUtils;

var
 Lines : TStringList;
 Split : TStringList;
 i     : Integer;
 j     : Integer;
begin
  Lines := TStringList.Create;
  try
    Lines.LoadFromFile('c:\software\demo.txt'); //assign the file name

    Split := TStringList.Create;
    try
      Split.Delimiter := ' '; // set the delimiter

      for i := 0 to Lines.Count - 1 do //iterate over the lines of the file
      begin
        Split.DelimitedText := Lines[i];
        for j := 0 to Split.Count - 1 do //iterate over the split elements
          Writeln(Split[j]);
      end;
    finally
      Split.Free;
    end;
  finally
    Lines.Free;
  end;

  Readln;
end.
Run Code Online (Sandbox Code Playgroud)