请问向txt文本输出这样的格式应该这样写代码啊? ( 积分: 50 )

  • 主题发起人 主题发起人 tyc2000
  • 开始时间 开始时间
T

tyc2000

Unregistered / Unconfirmed
GUEST, unregistred user!
姓名 年龄 性别
---------------------------
a 23 女
b 24 男
 
姓名 年龄 性别
---------------------------
a 23 女
b 24 男
 
我用了三个edit,一个button,实现在edit中输入信息后,点击button,则自动将信息写入文本,格式如上,请高手赐教,小弟初学bcb
 
procedure TForm1.Button1Click(Sender: TObject);
var
Str:TStringList;
begin
Str:=TStringList.Create;
Str.Add('ÐÕÃû'+#9+'ÄêÁä'+#9+'ÐÔ±ð'+#9);
Str.Add('------------------------------------');
Str.Add('a'+#9+'23'+#9+'Å®'+#9);
Str.Add('b'+#9+'24'+#9+'ÄÐ'+#9);
Str.SavetoFile('c:/test.txt');
Str.Free;
end;
 
delphi就知道,C++ Builder没学过,不懂
 
to sword_liu
c++下怎么写啊?
 
而且不是写好后保存,是向存在的文件追加信息。
to wzwcn:
可不可以写来看看,看能不能受点启发,我也才学这个,好多不懂。
 
晕,没搞过C++
 
大致想法就是写一个Field就加一个Tab.
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TStringList *a;
a=new TStringList();
a->Add("----------------------");
a->SaveToFile("c://test.txt");
a->Free();
}
 
vc下是:
void CDlgTest2Dlg::OnBnClickedButton11()
{
CString s, Name = "aaa", Sex = "Female";
int Age = 23;
s.Format("%-10s%-10d%s", Name, Age, Sex);
// "-"表示左对齐
AfxMessageBox(s);
}
结果是:aaa 23 Female
bcb也差不多吧~
 
我的代码是这样的:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
char *buf=new char[Edit1->Text.Length()+Edit2->Text.Length()
+ComboBox1->Text.Length()+1];
StrCopy(buf,Edit1->Text.c_str());
strcat(buf,Edit2->Text.c_str());
//buf=buf+' ';
strcat(buf,ComboBox1->Text.c_str());
strcat(buf,"/n");
int texthandle=FileOpen("c://1.txt",fmOpenReadWrite);
if (!FileExists("c://1.txt"))
texthandle=FileCreate("c://1.txt");
FileSeek(texthandle,0,2);
FileWrite(texthandle,buf,strlen(buf));
FileClose(texthandle);
delete [] buf;
}
能实现追加,但格式不对,显示格式如下:
a24男b23女c24男
目标格式是:
a 24 男
b 23 女
c 24 男
 
哪位大哥帮帮忙啊?
 
楼主为什么不用我上面说的Format?bcb也有这个函数的呀
strcat这样反而不方便了
 
好,我试下哈。[:)]
 
to islet8:
我这样写:
String s;
s.Format("%-10s%-10s%s",ARRAYOFCONST((Edit1->Text,Edit2->Text,Edit3->Text)));
ShowMessage(s);
s为空啊。
 
这个解决了,请问怎么把s装入缓冲区buf啊?
 
delphi下这样:
var
ps: PChar;
buf: array [1..1024] of Char;
ps := (PChar)s;
ZeroMemory(@buf, High(buf));
// 最好清零一下,防止缺少#0结尾符而出现奇怪字符
CopyMemory(@buf, ps, Length(s));
 
不行啊,bcb下没CopyMemory这个函数啊。
 
这个是win api,不可能没有的,呵呵
 
后退
顶部