procedure TForm1.btn1Click(Sender: TObject);
var
CsvData: TStringList;
Arry1,Arry2: array[0..20] of Char; //两个字符串数组,用来保存结果
begin
CsvData:= TStringList.Create;
try
CsvData.LoadFromFile('d:\ee.csv');
lstrcpyn(Arry1,PChar(CsvData.Strings[CsvData.Count - 1]),11); //拷贝最后一行的前10个字符。
lstrcpyn(Arry2,PChar(CsvData.Strings[CsvData.Count - 1]) + 11,11); //拷贝最后一行的从第12个字符开始的10个字符。
mmo1.Lines.Add(Arry1); //输出结果。
mmo1.Lines.Add(Arry2);
finally
CsvData.Free;
end;
end;
我昨天也犯了个大错误,Pchar(Pchar(CsvData.ValueFromIndex[I]) + 10)^:= char(0);这句本意是想将一行的原始数据中分,可犯了大忌。
因为这样会使delphi的字符串分配回收函数出错。
var
CsvData: TStringList;
Arry1,Arry2: array[0..20] of Char; //两个字符串数组,用来保存结果
begin
CsvData:= TStringList.Create;
try
CsvData.LoadFromFile('d:\ee.csv');
lstrcpyn(Arry1,PChar(CsvData.Strings[CsvData.Count - 1]),11); //拷贝最后一行的前10个字符。
lstrcpyn(Arry2,PChar(CsvData.Strings[CsvData.Count - 1]) + 11,11); //拷贝最后一行的从第12个字符开始的10个字符。
mmo1.Lines.Add(Arry1); //输出结果。
mmo1.Lines.Add(Arry2);
finally
CsvData.Free;
end;
end;
我昨天也犯了个大错误,Pchar(Pchar(CsvData.ValueFromIndex[I]) + 10)^:= char(0);这句本意是想将一行的原始数据中分,可犯了大忌。
因为这样会使delphi的字符串分配回收函数出错。
举世而誉之而不加劝,举世而非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。彼其于世未数数然也。