如何在FMX Delphi 11中用DelimitedText向TStringGrid写入字符串?
在FMX中使用DelimitedText向TStringGrid写入字符串的方法
你可以借助TStringList的DelimitedText属性自动处理分隔符,再将拆分后的内容批量填充到FMX的TStringGrid中,无需逐个单元格手动拆分。以下是具体实现方案:
核心封装方法
procedure LoadDelimitedTextToGrid(const ASource: string; ADelimiter: Char; AGrid: TStringGrid); var StrList: TStringList; RowIdx, ColIdx: Integer; begin if not Assigned(AGrid) then Exit; StrList := TStringList.Create; try StrList.Delimiter := ADelimiter; // 若CSV字段带引号(比如内容包含分隔符),打开引号识别 StrList.QuoteChar := '"'; StrList.DelimitedText := ASource; // 确保网格有足够列数容纳拆分后的字段 if AGrid.ColumnCount < StrList.Count then AGrid.ColumnCount := StrList.Count; // 添加新行并填充内容 RowIdx := AGrid.RowCount; AGrid.RowCount := RowIdx + 1; for ColIdx := 0 to StrList.Count - 1 do begin if ColIdx < AGrid.ColumnCount then AGrid.Cells[ColIdx, RowIdx] := StrList[ColIdx]; end; finally StrList.Free; end; end;
简单使用示例
假设要处理逗号分隔的CSV行内容,直接调用方法即可:
var CSVLine: string; begin CSVLine := 'Alice,30,"Senior Developer",New York'; LoadDelimitedTextToGrid(CSVLine, ',', StringGrid1); end;
额外说明
- 如果需要批量加载整个CSV文件,可以逐行读取文件内容,循环调用上述方法完成全量数据填充。
- 若你的分隔符不是逗号,只需修改调用时的
ADelimiter参数即可适配其他格式(如制表符#9)。
内容的提问来源于stack exchange,提问作者Anton Tretyak
相关产品推荐
相关产品推荐

