Blog信息 |
blog名称:注册会计师(注会)练习软件 日志总数:398 评论数量:116 留言数量:27 访问次数:3267768 建立时间:2005年6月6日 |

| |
[delpih编程]自编ECO生成web系统的一段代码分析留档 软件技术
吕向阳 发表于 2009/3/15 20:44:46 |
下面代码解决问题:
1)asp.net对文本文件的处理方法:
有两种,先用的// sw := system.IO.&File.CreateText(afile);
这种代码保存的是utf-8,最后生成的ascx调出界面来时是乱码,用记事本将它转换为ANSI时界
面正常,于是又想办法将它能写为ansi格式。
这时用到
sw := system.IO.StreamWriter.Create(afile, false, encoding.Unicode);
写文件解决了
2)写文件时用write,换行符不好解决,这时改为writeline又正常了
3)
newstype为“文章类型”的eco类,news为"文章"的eco类,为一对多的关系
anewstype为一个newstype的实例,那么anewstype.newss就是它的全部一对多子集,且
anewstype.newss[0]就是其第一元素对象,它是news类的实例,可直接将它将news类引用,
anews := anewstype.newss[j] as news; 这句就是将它赋值给另一个对象
list1 := ehnewstype.Element.GetAsCollection;
if list1.Count > 0 then
for i := 0 to List1.Count - 1 do
begin
anewstype := list1[i].AsObject as newstype;
if anewstype.newss.Count > 0 then
begin
for j := 0 to anewstype.newss.Count - 1 do
begin
anews := anewstype.newss[j] as news; //关键在这,原来重来没这样用过,
// listbox1.Items.Add(anews.title);
if anews.sxh > 0 then
showmess(anews.title);//自定函数
end;
end;
end;
该段代码全部如下,
procedure TWebForm8.generalaspx;
var i, j: integer;
list1: ielementcollection;
list2: iobjectlist;
anewstype: newstype;
anews: news;
xid: string;
strtmp: string;
sw: streamwriter;
afile: string;
//
begin
afile := System.Web.HttpContext.Current.Server.MapPath('thetop.ascx');
// sw := system.IO.&File.CreateText(afile);
sw := system.IO.StreamWriter.Create(afile, false, encoding.Unicode);
// sw = new StreamWriter(strFilePath,false,Encoding.Unicode);
//========
sw.writeline('
Codebehind="thetop.pas" Inherits="thetop.ttop"%>');
sw.writeline('
media="all" />');
sw.writeline('
');
sw.writeline('');
sw.writeline('
');
sw.writeline(' 500)this.width=500'> ');
sw.writeline('
');
sw.writeline('
');
sw.writeline('
回首页');
//============
strtmp := '';
list1 := ehnewstype.Element.GetAsCollection;
try
if list1.Count > 0 then
for i := 0 to List1.Count - 1 do
begin
anewstype := list1[i].AsObject as newstype;
listbox1.Items.Add('=====' + anewstype.mc);
sw.writeline('
' + ANEWSTYPE.MC + '');
sw.writeline('
');
if anewstype.newss.Count > 0 then
begin
for j := 0 to anewstype.newss.Count - 1 do
begin
anews := anewstype.newss[j] as news;
listbox1.Items.Add(anews.title);
if anews.sxh > 0 then
sw.writeline('
ANEWS.SXH.ToString.Trim + ')%>">' + ANEWS.TITLE + '');
// showmess(anews.title);
end;
end;
sw.writeline(' ');
sw.writeline('');
end;
sw.writeline('
管理');
sw.writeline('');
sw.writeline('');
sw.writeline('');
finally
sw.close;
end;
end; |
|
|