“表里出现三行记录“。程序有错:
for i:=0 to form1.Memo1.Lines.Count-1 do
begin
myline:=regulatestr(form1.Memo1.lines[i],sepchar);
for j:=1 to getsubstrnum(myline,SepChar) do
begin
append;
0A Fields[j-1].AsString:=getsubstr(myline,SepChar);
0A post;
end;
end;
将Append移动到 for j:=1 to getsubstrnum(myline,SepChar) do 上面。
—————————————————————————————————
MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
毁誉由人,望天上云卷云舒,聚散任风。';
if Not Assigned(I) then
I := TI.Create(Nil);
I.Maxim := MaximStr;
I.Explain := '假如上述代码中出现“OA”、“3D”等字样,改为“=”或者去掉';
I.Desire := '加不加分随你';
—————————————————————————————————
for i:=0 to form1.Memo1.Lines.Count-1 do
begin
myline:=regulatestr(form1.Memo1.lines[i],sepchar);
for j:=1 to getsubstrnum(myline,SepChar) do
begin
append;
0A Fields[j-1].AsString:=getsubstr(myline,SepChar);
0A post;
end;
end;
将Append移动到 for j:=1 to getsubstrnum(myline,SepChar) do 上面。
—————————————————————————————————
MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
毁誉由人,望天上云卷云舒,聚散任风。';
if Not Assigned(I) then
I := TI.Create(Nil);
I.Maxim := MaximStr;
I.Explain := '假如上述代码中出现“OA”、“3D”等字样,改为“=”或者去掉';
I.Desire := '加不加分随你';
—————————————————————————————————
解决方案 »
- 超级白痴送分问题
- ----用DBGrid记录来更新数据代码怎样写?
- 过年了,发红包了,来的都有份~~~
- 各位大虾帮帮忙,小D先谢过了!
- StringGrid的问题
- 有分(ADO的问题),当表内有相同的数据时,使用adodataset.Delete删除时出现错误!
- 谁有真正能用的无限制的FastReport2.4版,请mail给我(www.playicq.com上的都不能用)
- 各位高手去看看《!!!!!!!!挑战极限3---修改正在运行的可执行文件(PE)的数据并把他保存在该程序的文件中---!!!!!!!!!!!你能
- 怎启动Interbase?密码和用户是什么? 输入 username=sysdba password=masterkey 也不好用。
- table的问题?(紧急问题)
- 一个关于窗体关闭的问题?
- 简单问题
-----------
for j:=1 to getsubstrnum(myline,SepChar) do
begin
append;
Fields[j-1].AsString:=getsubstr(myline,SepChar);
post;
end;
看出了吗,每循环一次就append一次,也就多了一条记录。
这里建议edit,在i 循环里append,内层循环是对同一条记录的字段循环,所以用edit就可以了。
至于判断tab的那部分,我没太看明白>_<,再看看!
1、Post移动到for j:=1 to getsubstrnum(myline,SepChar) do 外面。
2、你的getsubstr函数只能返回一行数据的第一部分。建议将改为:
Function Tform1.GetSubStr (aString:String;SepChar:String):TStrings;
//返回一个字符串列表,而不是一个字符串。在后面这样使用:
for j:=1 to getsubstrnum(myline,SepChar) do
begin
Fields[j-1].AsString:=getsubstr(myline,SepChar).Strings[j-1];
end;—————————————————————————————————
MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
毁誉由人,望天上云卷云舒,聚散任风。';
if Not Assigned(I) then
I := TI.Create(Nil);
I.Maxim := MaximStr;
I.Explain := '假如上述代码中出现“OA”、“3D”等字样,改为“=”或者去掉';
I.Desire := '加不加分随你';
—————————————————————————————————
var Mystr:String;
SepCharPos:Integer;
begin
MyStr := aString;
SepCharPos := Pos(SepChar,MyStr);//计算分割符在子串中的位置
repeat
Result.Add(Copy(MyStr,1,SepCharPos-1));
MyStr := Copy(MyStr,SepCharPos+1,Length(MyStr)-SepCharPos);0D
SepCharPos := Pos(SepChar,MyStr);//计算分割符在子串中的位置
until SepCharPos = 0;
end;—————————————————————————————————
MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
毁誉由人,望天上云卷云舒,聚散任风。';
if Not Assigned(I) then
I := TI.Create(Nil);
I.Maxim := MaximStr;
I.Explain := '假如上述代码中出现“OA”、“3D”等字样,改为“=”或者去掉';
I.Desire := '加不加分随你';
—————————————————————————————————
Project YY1.exe raised exception class EDBEngineError with message 'invalid filed descriptor'.Process stoped.Use step or Run to continue.我不知道是什么原因!!!
而且你所说的用edit 的方法我不是很清楚,能不能给我写出来呀!?????
for j:=1 to getsubstrnum(myline,SepChar) do
begin
Fields[j-1].AsString:=getsubstr(myline,SepChar);
end;
post;
这一段,这样改!试试!