从表中往TXT中写数据,怎么来对齐!(50分)

Q

qiusy

Unregistered / Unconfirmed
GUEST, unregistred user!
从表中往TXT中写数据,是一行一行写的,可在TXT种排得很乱,怎么来对齐
表记录如下: name old
wc 19
可写到TXT中排得很乱 name old
wc 19
怎么才能让字段值和表头左对齐
 
用format():

procedure TForm1.Button1Click(Sender: TObject);
var
s1,s2: string;
begin
s1 := 'hello';
s2 := 'world';
caption := format('%-8s%-8s',[s1,s2]); //长度为8

end;
 
写个函数!
function getStr(str:String):String;
var
strL,i:Integer;
tmpStr:String;
begin
strL:=50;
for i=0 to strL-Length(str)
begin
str:=str+' ';
end;
return str;
end;
每个字段的的值用这个函数处理后写入txt就行了。
 
在线等待高手指点,今天就要完成,请帮帮忙!
 
我用setlength(str)怎么不行?
 
setlength如长度比原来的大,会填充#0,而这是字符串结束的标志。
format是最方便的方法。
 
zw84611 的办法是最方便的啦,结帖啦。[:)]

 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1362948
 
谢谢了,是可以这样解决的

有没又简单的办法,从txt文件中把数据导入到sql 表中
难道也要从txt中一行一行的读数据,添加到表中?
 
format()函数
 
对齐的问题是按你们说的方法解决了,谢谢了
可我现在倒出来的TXT想再导入到表中就不知道怎么实现了
怎么一行一行的读取TXT文本文件,然后再分成一个字段一个字段的

怎么从txt文本往表中到入数据
 
procedure APP_TEXT(FILENAME:STRING;QRY:TQUERY;SPAN:STRING);
var f:textfile;
j,i:integer;
begin
if QRY.Active=true then
begin
assignfile(f,FILENAME);
rewrite(f,FILENAME);
QRY.First;
for i:=0 to QRY.RecordCount-1 do
begin
for j:=0 to QRY.FieldCount-1 do
begin
write(f,QRY.Fields[j].asstring :QRY.Fields[j].DisplayWidth);
write(f,SPAN);
end;
writeln(f,' ');
QRY.next;
end;
closefile(f);
DM_JGZ.HideWaiting;
Application.MessageBox(PCHAR('文本文件'+FILENAME+'生成成功!'),'信息',MB_OK+MB_ICONINFORMATION);
end
else
Application.MessageBox('请单击查询按钮!','信息',MB_OK+MB_ICONINFORMATION);
end;
end.
 
在文本编辑器看上去乱,不一定就乱。
将字体设置为“宋体”后再看

要不乱,可在输出时,使同一字段的输出内容长度相同,
后面补上足够的空格。
 
顶部