问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

delphi编辑文本

发布网友 发布时间:2022-10-10 07:19

我来回答

2个回答

热心网友 时间:2023-10-03 09:58

不知道上边的那些点你是存在那呢?
给两种思路:
1.使用数据库
将点坐标存在数据库表里。解析memo1的数据,查询括号里的两个点,依次取出每个点的x,y,z赋值给memo2.
2.使用stringlist
将点依次存入stringlist,解析了数据后,直接取stringlist.string[x],转换后赋值给memo2
关键语句如:

tmpstrlist := tstringlist.create;
tmpstrlist.text := memo1.text;
for i := 0 to tmpstrlist.count-1 do
begin
tempstr := tmpstrlist.strings[i];
tempstr := copy(tempstr,pos('(',tempstr)+1,pos(')',tempstr)-pos('(',tempstr)-1);
tempx := copy(tempstr,1,pos(',',tempstr)-1);
tempy := copy(tempstr,pos(',',tempstr)+1,length(tempstr));
//如此就 取得了线的两个点
//这里采用方法2吧,方法1,用数据库操作应该很简单,查询出来后,依值赋值就行了
//这里假设第一个点存为0,0,0,如果如楼主那样的自己转换一下就行
tempintx := strtoint(tempx);
tempinty := strtoint(tempy);
tempstr := linestrlist.strings[tempintx];
memo2.items.add('line'+inttostr(i));
meme2.items.add('x'+inttostr(tempintx)+' '+copy(tempstr,1,pos(',',tempstr)-1);
tempstr:=copy(tempstr,pos(',',tempstr)+1,length(tempstr));
meme2.items.add('y'+inttostr(tempintx)+' '+copy(tempstr,1,pos(',',tempstr)-1);
tempstr:=copy(tempstr,pos(',',tempstr)+1,length(tempstr));
meme2.items.add('z'+inttostr(tempintx)+' '+copy(tempstr,1,length(tempstr));

//y照着弄就行了
end; //结束循环

热心网友 时间:2023-10-03 09:59

又在问?
TDHPoint = record
Idx:Integer;
x,y,z:Single;
end;

TDHLine = record
Idx:Integer;
T1,T2:Integer;
P1,P2:TDHPoint;
T3:Integer;
end;

var
Form1: TForm1;
PointList:array of TDHPoint;
sl,sl1:TStringList;

implementation

{$R *.dfm}

function GetPointByIdx(idx:Integer):TDHPoint ;
var
i:Integer;
begin
for i:=0 to Length(PointList)-1 do
if PointList[i].Idx=idx then
begin
Result:=PointList[i];
Exit;
end;
end;

function StrToPoint(const s:string;var P:TDHPoint):Boolean;
begin
Result:=False;
if s='' then
Exit;
sl.Clear;
try
sl.Delimiter:=',';
sl.DelimitedText:=s;
if sl.Count<>4 then
Exit;
P.Idx:=StrToInt(sl[0]);
P.x:=StrToFloat(sl[1]);
P.y:=StrToFloat(sl[2]);
P.z:=StrToFloat(sl[3]);
Result:=True;
except
end;
end;

function GetPointList(const s:string):Boolean;
var
I:Integer;
begin
Result:=False;
sl1.Clear;
try
sl1.Text:=s;
SetLength(PointList,sl1.Count);
for I:=0 to sl1.Count-1 do
if not StrToPoint(sl1[i],PointList[i]) then
Exit;
Result:=True;
except
end;
end;

function StrToLine(const S:string;var Line:TDHLine):Boolean ;
var
idx1,idx2,C:Integer;
begin
Result:=False;
if s='' then
Exit;
sl.Clear;
sl.Delimiter:=',';
sl.DelimitedText:=s;
if sl.Count<>7 then
Exit;
try
C:=Length(PointList);
idx1:=StrToInt(sl[4]);
idx2:=StrToInt(sl[5]);
if (idx1<0)or(idx1>=C)or(idx2<0)or(idx2>=c) then
Exit;
Line.Idx:=StrToInt(sl[0]);
Line.T1:=StrToInt(sl[2]);
Line.T2:=StrToInt(sl[3]);
Line.P1:=GetPointByIdx(idx1);
Line.P2:=GetPointByIdx(idx2);
Line.T3:=StrToInt(sl[6]);
Result:=True;
except
end;
end;

procere TForm1.btn1Click(Sender: TObject);
var
Idx,I:Integer;
Sl2:TStringList;
L:TDHLine;
B:Boolean;
begin
B:=True;
Sl2:=TStringList.Create;
Sl:=TStringList.Create;
Sl1:=TStringList.Create;
mmo2.Clear;
try
for I:=0 to mmo1.Lines.Count-1 do
if (mmo1.Lines[i]='') then
begin
//获得所有点.
if B then
begin
if not GetPointList(Sl2.Text) then
Exit;
B:=False;
Sl2.Clear;
end;
end
else
sl2.Add(mmo1.Lines[i]);
for i:=0 to sl2.Count-1 do
begin
if not StrToLine(sl2[i],L) then
Exit;
mmo2.Lines.Add('Line'+ IntToStr(L.Idx));
mmo2.Lines.Add('x1') ;
mmo2.Lines.Add(' '+FloatToStr(L.P1.x)) ;
mmo2.Lines.Add('y1') ;
mmo2.Lines.Add(' '+FloatToStr(L.P1.y)) ;
mmo2.Lines.Add('z1') ;
mmo2.Lines.Add(' '+FloatToStr(L.P1.z)) ;
//
mmo2.Lines.Add('x2') ;
mmo2.Lines.Add(' '+FloatToStr(L.P2.x)) ;
mmo2.Lines.Add('y2') ;
mmo2.Lines.Add(' '+FloatToStr(L.P2.y)) ;
mmo2.Lines.Add('z2') ;
mmo2.Lines.Add(' '+FloatToStr(L.P2.z)) ;
end;
finally
sl.Free;
sl1.Free;
sl2.Free;
end;
end;
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
艾芙洛洗发水为什么不在商场销售商 艾芙洛洗发水是英国的吗 毕业生刚刚签了三方协议,想毁,怎么办 适合夫妻干的生意有哪些 新生蜜蜂多久出巢试飞 新生蜜蜂什么时候进行首次试飞? 蜜蜂几月几日出生外貌和颜色? 当脚模一定要脚趾修长吗 脚长成这样,能当脚膜吗 固话遇忙记存呼叫业务有什么特点? 什么是固话遇忙记存呼叫业务? 如何用delphi向QQ的聊天窗口发送文字? 怎样理解企鹅爱上冰 炝羊肚青椒怎么做? 李米的猜想剧情 李米的猜想内容简介 夜观天象是观察些什么啊? 彗星袭月,白虹贯日,仓鹰击于殿上的所谓吉凶之兆,分别说明了什么? 电影李米的猜想剧情和主题曲? 求!七年级上英语复习题答案 李米的猜想剧情是什么? 为了躲避对方车辆急转自己却翻车,未刮蹭,对方有责任吗?算交通事故吗? 汽车吊在吊东西停的时候如何停才稳,有什么技巧不会乱摆 腌茄子咸菜的做法大全 这三种方法腌出的茄子最好吃 贴药膏后皮肤过敏怎么办 贴药膏后皮肤过敏红肿怎么办 为什么贴膏药过敏 成都的厨房设备公司有哪些? 枸杞子怎么洗 枸杞子洗法 丸子的做法,莲藕胡萝卜丸子怎么做好吃,莲 山东近几年取得的成就有哪些? 离山东最近的南方城市有哪些 桃子可以快递么??会弄坏么? 山东哪里好玩 山东好去处有什么 宝马3系试驾首撞,弧形刹车痕迹里边能看出什么? 谁说电动不能有驾驶乐趣 试驾BMW i3 我在拼多多的多多牧先养猪后不小心变成牛我想养猪怎么返回? 拼多多5元无门槛升级为6元后能不能改好过来? 拼多多升级后原来的信息如何找回 2022准确率高的志愿填报模拟软件 哪个比较好 小班科学课教案:各种各样的水果 怎样吃水果最健康要点详解.ppt 无锡阳山水蜜桃怎么邮到外地 今天吃辣椒喉咙发炎怎么办 土事不文,木工不斵,金器不镂. 为什么说丁香结是不祥之物? 不可再得之物,不可再遇之人什么意思 意不称物 文不逮意 财商布局五大资产 营建造句-用营建造句 结尾是lina的英文名 方莉娜的英文名怎么写