一个《逐行添加字段问题》---在线等 ( 积分: 50 )

  • 主题发起人 主题发起人 zqssoft
  • 开始时间 开始时间
Z

zqssoft

Unregistered / Unconfirmed
GUEST, unregistred user!
在Memo控件中,有下列文本
首页 utdm utdm 21400000 4670000 11
网站 mquh mruh 18600000 3910000 12
软件 lqwr lqwt 17500000 4050000 13
中心 khny khny 17316000 4040000 14
网络 mqxt mrxt 17100000 4210000 15
企业 whog whoh 12400000 4520000 16
在线 dhxg dhxg 12507200 3500000 17
看来 rhgo rhgu 13840600 1548000 18
产品 utkk utkk 10800000 4430000 19
技术 rfsy rfsy 10400000 4730000 20
。。。(还有许多行,略)

以空格为分隔,怎样才能一个个把他们
分别添加到Table1的六个字段
a,b,c,d,e,f中呢。
如:
a b c d e f
首页 utdm utdm 21400000 4670000 11
网站 mquh mruh 18600000 3910000 12
软件 lqwr lqwt 17500000 4050000 13
中心 khny khny 17316000 4040000 14
的形式。谢谢。
 
先把Memo的行数找出来..
然后从第一行开始到最后一行..把一行赋值到一个字符串..
每一行.用POS找出空格...然后再用.COPY..把你要取的数据取出来..
再保存到表中..这样不是OK了?
你可以试下..要是不行.再找我吧.哈哈.
 
很简单,写好了.
应该看得懂吧,不多解释了
procedure TForm1.Button1Click(Sender: TObject);
procedure UpdateDatabase(aStrings: TStrings);
begin
if Assigned(aStrings) and (aStrings.Count >= 6) then
with ADOQuery1 do
begin
append;
Fields[0].Value:= aStrings[0];
Fields[1].Value:= aStrings[1];
Fields[2].Value:= aStrings[2];
Fields[3].Value:= aStrings[3];
Fields[4].Value:= aStrings[4];
Fields[5].Value:= aStrings[5];
Post;
end;
end;
var
slSrc,slTemp: TStrings;
i: integer;
begin
slSrc:= TStringList.Create;
slSrc.Assign(Memo1.Lines);
slTemp:= TStringList.Create;
slTemp.Delimiter:= ' ';

try
for i:= 0 to slSrc.Count-1 do
begin
slTemp.DelimitedText:= slSrc;
UpdateDatabase(slTemp);
end;
finally
slSrc.Free;
slTemp.Free;
end;

end;
 
非常感谢。还有一个问题请教各位:
caijian裁剪
caijian裁减
caijue裁决
caijue采掘
caili财礼
caili财力
caili彩礼
caiqi才气
caiqi彩旗
。。。略。
上面的文本中,分别是同音词,同音词每组个数不确定,
可能是2个,也可能是3个,也可能是4个。
但肯定的是,他们前头都有相似的拼音字母。
如何编写程序,按如下格式分析读取添加文本到数据库./,其中,字段为A,B
A(A是文本类型) B (B是Memo字段类型,因此可以有换行的回车符号)
(表第一行)
caijian 裁剪
裁减
(表第二行)
caili 财礼
财力
彩礼
....仅做示例,逐行读取。不能有隔,以上只是例子。
谢谢。
 
已调试运行过,ok,

caijian裁剪
caijian裁减
caijue裁决
caijue采掘
caili财礼
caili财力
caili彩礼
caiqi才气
caiqi彩旗
以上是a.txt文件的内容
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
Memo2: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
function GetFromStr(iType: integer;aString: string): string;
var
i,pos: integer;
begin
pos:= 0;
for i:= 0 to Length(aString)-1 do
if ord(aString)> 160 then
begin
pos:= i;
break;
end;
case iType of
1: Result:= copy(aString,1,pos-1); //py
2: Result:= copy(aString,pos,length(aString));//hz
else
Result:= 'Error!!!';
end;
end;
var
pySL,hzSL,hzTempSL,tempSL: TStrings;
i: integer;
begin
pySL:= TStringList.Create;
hzSL:= TStringList.Create;
hzTempSL:= TStringList.Create;
tempSL:= TStringList.Create;
try
tempSL.LoadFromFile('a.txt');
for i:= 0 to tempSL.Count-1 do
begin
if pySL.IndexOf(GetFromStr(1,tempSL))= -1 then
begin
if i<> 0 then
begin
hzSL.Add(hzTempSL.Text);
hzTempSL.Clear;
end;
pySL.Add(GetFromStr(1,tempSL));
hzTempSL.Add(GetFromStr(2,tempSL));
Continue;
end;
hzTempSL.Add(GetFromStr(2,tempSL))
end;
hzSL.Add(hzTempSL.Text);

if pySL.Count = hzSL.Count then
begin
Memo1.Lines.Assign(pySL);
Memo2.Lines.Assign(hzSL);
end;
finally
pySL.Free;
hzSL.Free;
hzTempSL.Free;
tempSL.Free;
end;
end;

end.
 
还有两个问题请教大哥,请指教.
aimei爱美
aimei暧昧
aizheng挨整
aizheng癌症
以上是Memo中的文本,行数很多,格式相同(拼音+词组),在此只略为四行
1.如何可以去除Memo文本中的汉字,只保留英文,使结果如下形式.
aimei
aimei
aizheng
aizheng
2.如何可以替换掉上述文本中的相同行,只保留一行,格式如下:
aimei
aizheng
请注意,有的同音词组可能大于2行,因此不能用奇偶行替换的方式.

呵呵,问题总算问完了,在此等待各位的恳切回答了,谢谢.
 
靠,这也能算问题,其实我上面的代码已经回答了你的问题,我都怀疑你是否看懂了我的代码
1.如何可以去除Memo文本中的汉字,只保留英文,上面我都写过了
function GetFromStr(iType: integer;aString: string): string;
var
i,pos: integer;
begin
pos:= 0;
for i:= 0 to Length(aString)-1 do
if ord(aString)> 160 then
begin
pos:= i;
break;
end;
case iType of
1: Result:= copy(aString,1,pos-1); //py拼音
2: Result:= copy(aString,pos,length(aString));//hz汉字
else
Result:= 'Error!!!';
end;
end;
2.如何可以替换掉上述文本中的相同行,只保留一行
if indexOf = -1 then
aStringList.Add
3 .........
 
问题搞定了,别忘了结账啊,
啊哈哈
 
真无聊。。。
 
接受答案了.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部