D
dedragon
Unregistered / Unconfirmed
GUEST, unregistred user!
我想实现的功能如下:有个button和RichEdit,在RichEdit输入或者粘贴一篇文字,文字中带有很多多余的回车键。判断的正确回车的标准是以中文的段落标点符号。按button后就可以自动的把多余的回车键删除。并且有多个段落的话,也按照中文的格式,段落行前留两个空格再书写文字。<br>如下面一段文字:<br> 13131313131331313<br> 1313131313131313212544485;<br> 4798778784。大幅度法,大幅度法,大幅度法地方的热。<br> 反对反对。<br>整理之后输出为:<br> 131313131313313131313131313131313212544485;4798778784。大幅度法,大幅度法,大幅度法地方的热。<br> 反对反对。<br><br>原来有个vb程序的了,我根据vb程序改成delphi如下:<br>procedure TForm1.Button3Click(Sender: TObject);<br>var<br> I,j,Strlen,linecount:integer; //J为当前位置,Strlen为文本长度<br> Content,temp,temp1,buffer,buffer1:string; //Content为文本内容,temp为临时字符,buffer为原有字符<br>begin<br> linecount:=RichEdit1.Lines.count;<br> for I:=0 to linecount-1 do begin<br> buffer1:=RichEdit1.Lines; <br> Content:=Trim(buffer1);<br> Content:=' '+ Content;<br> strlen:=length(buffer1);<br> // showmessage(inttostr(strlen));<br>// showmessage(buffer1);<br> for I=3 to strlen-1 do begin<br> buffer:=Midstr(Content, I, 1);<br> if buffer=Chr(13) then<br> temp:=Midstr(Content, I+1, 1);<br> if ord(temp)=10 then<br> temp:=Midstr(Content, I-1, 1);<br> if temp=Chr(10) or temp=' ' or (temp<>Chr(34) And temp<>Chr(39) And AnsiMatchStr(temp, '。”!:?.!:?')=0) then<br> Content:=Midstr(Content, 1, I-1) + Midstr(Content, I+2, strlen-1);<br> strlen:=strlen-2;<br> I:=I-1<br> else<br> Content:=Midstr(Content, 1, I+1) + ' ' + Midstr(Content, I+2, strlen-1);<br> strlen:=strlen+2;<br> I:=I+3;<br> end;<br> end;<br> end;<br> I:=I+1;<br> Content:=Trim(Content);<br> if LeftStr(RightStr(Content,2),1) = Chr(13) then<br> Content:=Trim(LeftStr(Content, Length(Content) - 2));<br> end;<br> RichEdit1.Lines:=Content;<br> end; <br>end;<br><br>但编译不通,请朋友们多多帮忙,或者给我个新的程序也可。