冥界3大法王 发表于 2019-8-25 21:18

怎么能让左面这列表格没有?

读取以下txt:

涟涟 云朵 花儿 朵儿
小翠 小红 小莲 小爱
翠翠 花花 园园 龙龙
翠翠 花花 园园 龙龙
涟涟 云朵 花儿 朵儿
小翠 小红 小莲 小爱
翠翠 花花 园园 龙龙






unit Unit1;

interface

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

type
TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
private
    { Private declarations }
public
    { Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}
procedure TForm1.Button2Click(Sender: TObject);
function SplitString(const source, ch: string): TStringList;
var
    temp: string;
    i: integer;
begin
    result := tstringlist.Create;
    temp := source;
    i := pos(ch, source);
    while i <> 0 do
    begin
      result.Add(copy(temp, 0, i - 1));
      delete(temp, 1, i);
      i := pos(ch, temp);
    end;
    result.Add(temp);
end;

var
i, j, k: integer;
i_RowCount, i_ColCount: Integer;
StrList, TmpList: TStringList;
s_CurItem: string;
begin
StrList := TStringList.Create;
TmpList := TStringList.Create;
StrList.LoadFromFile(ExtractFileDir(ParamStr(0)) + '/test.txt');
for k := 0 to StrList.Count - 1 do
begin
    s_CurItem := StrList.Strings;
    TmpList.Clear;
    TmpList := SplitString(s_CurItem, ' ');
    i_ColCount := StrList.Count;
    i_RowCount := TmpList.Count;
    StringGrid1.ColCount := i_RowCount + 1;
    for j := 1 to i_RowCount do
    begin
      StringGrid1.Cells := TmpList.Strings;
    end;
end;
StrList.Free;
TmpList.Free;
end;

ljzbox 发表于 2019-8-25 23:05

按住alt选中左列空格,删除就可以了

xinyuguy 发表于 2019-8-26 08:57

这好像是你自己 写进去的 把吧,你 第一列写的东西是不是有问题, 你看你 的 分割 文本的函数 前面 是不是会 出来 一个 空

xinyuguy 发表于 2019-8-26 09:00

还有啊stringlist本身就可以 制定 分隔符 ,自动 帮你分开的 ,你也没有必要自己 再写个 函数
页: [1]
查看完整版本: 怎么能让左面这列表格没有?