小小问题:下边的代码我真的不知道如何转换!请各位帮帮忙...(在线等待,及时结帖)

liuyong_lll 2003-04-08 01:16:28
VB中的代码(没有CODEBEHIND)如下:
Sub Page_Load()

'create physical path for the new file (in same folder as ASPX page)
Dim strCurrentPath As String = Request.PhysicalPath
Dim strXMLPath As String = Left(strCurrentPath, InStrRev(strCurrentPath, "\")) & "newbooklist.xml"

'declare a variable to hold an XmlTextWriter object
Dim objXMLWriter As XmlTextWriter

Try

'create a new objXMLWriter object for the XML file
objXMLWriter = New XmlTextWriter(strXMLPath, Nothing)
outDocURL.innerHTML = "Writing to file: <b>" & strXMLPath & "</b>"


Catch objError As Exception

'display error details
outError.innerHTML = "<b>* Error while accessing document</b>.<br />" _
& objError.Message & "<br />" & objError.Source
Exit Sub ' and stop execution

End Try

'now ready to write (or "push") the nodes for the new XML document

'turn on indented formatting and set indent to 3 chararcters
objXMLWriter.Formatting = Formatting.Indented
objXMLWriter.Indentation = 3

'start the document with the XML declaration tag
objXMLWriter.WriteStartDocument()

'write a comment element including the current date/time
objXMLWriter.WriteComment("Created using an XMLTextWriter - " & Now())

'write the opening tag for the <BookList> root element
objXMLWriter.WriteStartElement("BookList")

'write the opening tag for a <Book> element
objXMLWriter.WriteStartElement("Book")

'add two attributes to this element's opening tag
objXMLWriter.WriteAttributeString("Category", "Technology")
Dim intPageCount As Integer = 1248 'numeric value to convert
objXMLWriter.WriteAttributeString("Pagecount", intPageCount.ToString("G"))

'write four elements, using different source data types
objXMLWriter.WriteElementString("Title", "Professional Video Recorder Programming")
Dim datReleaseDate As DateTime = #03/03/2000#
objXMLWriter.WriteElementString("ReleaseDate", datReleaseDate.ToString("yyyy-MM-dd"))
Dim intSales As Integer = 17492
objXMLWriter.WriteElementString("Sales", intSales.ToString("G"))
Dim blnHardback As Boolean = True
objXMLWriter.WriteElementString("Hardback", blnHardback.ToString())

'write the opening tag for the <AuthorList> child element
objXMLWriter.WriteStartElement("AuthorList")

'add two <Author> elements
objXMLWriter.WriteElementString("Author", "Francesca Unix")
objXMLWriter.WriteElementString("Author", "William Soft")

'close the <AuthorList> element
objXMLWriter.WriteEndElement()

'close the <Book> element
objXMLWriter.WriteEndElement()

'close the root <BookList> element
objXMLWriter.WriteEndElement()

'flush the current content to the file and close it
objXMLWriter.Flush()
objXMLWriter.Close()

'now open the new XML file and read it into a string
Dim strXMLResult As String
Dim objSR As StreamReader = File.OpenText(strXMLPath)
strXMLResult = objSR.ReadToEnd()
objSR.Close
objSR = Nothing

'and display the results in the page
outResults.innerHTML = "<pre>" & Server.HtmlEncode(strXMLResult) & "<pre>"

End Sub

我想把它转换成C#的代码,使用CODEBEHIND技术,当我只是进行简单的转换的时候,我发现在C#中好象不存在下边的方法:string strXMLPath=Left(strCurrentPath,InStrRev(strCurrentPath,"\"))+"newbooklist.xml";
....................也许是我C#功底太差的缘故吧,我在MSDN中去搜索InStrRev找到的却是VB中的一段代码.......请各位帮忙翻译一下吧!

我现在特别纳闷的地方是:如果我不知道在C#中的哪个方法,但是我又想在MSDN中去找,我应该怎么做,难道用汉字去搜索吗???好象此种方法常常得不到我想要得结果来着,还请各位给小弟我提点建议(我知道MSDN中有很多好东东,但是我不知道该如何使用来着,哎,晕!)...........先在此多谢各位了!!!!!!!
...全文
25 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
bbwolf 2003-04-08
  • 打赏
  • 举报
回复
所以,刚才的那句话就是找到某一个文件的目录,在后面加上一个固定的文件名,形成一个完整路径
bbwolf 2003-04-08
  • 打赏
  • 举报
回复
InStrRev是InStr的反向查找,也就是从右向左查找到第一个符合条件的字符串返回其从右向左的索引值。
bullnade 2003-04-08
  • 打赏
  • 举报
回复
UP.....
liuyong_lll 2003-04-08
  • 打赏
  • 举报
回复
我不懂VB来着,公司给的书籍却是VB版本的,晕啦......

我现在搞不懂的地方和上边BULLNADE的一样,我不知道InStrRev的用法是个什么样子的?好象这个用法只有VB的有耶!!

对了,要好好感谢BULLNADE的支持,其实我下边的代码都已经翻译过来了.....问题的所在与你发现的相同!
bullnade 2003-04-08
  • 打赏
  • 举报
回复
哦,对了,忘了告诉你,我的代码出问题的位置:
主要是那段代码:
//string strXMLPath=Left(strCurrentPath,InStrRev(strCurrentPath, "\"))+"newbooklist.xml";
int k=strCurrentPath.LastIndexOf("\\");
string strXMLPath=strCurrentPath.Substring(0,k);
strXMLPath+="havetry.xml";
XmlTextWriter objXMLWriter=new XmlTextWriter(strXMLPath,System.Text.Encoding.UTF8);


InStrRev(strCurrentPath, "\")这个地方我也不是十分清楚它的作用是什么??


如果哪位兄弟看见了,可否告知?????恳切期盼...

guoadou 2003-04-08
  • 打赏
  • 举报
回复
像2002pine(我学习,我存在) 说的一样
用substring
我是这样用的,这样left,right都能实现啊 想怎么取就怎么取
bullnade 2003-04-08
  • 打赏
  • 举报
回复
我替你转换的代码如下:
里边还是有点小小问题来着..............................

private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
string strCurrentPath=Request.PhysicalPath;
//string strXMLPath=Left(strCurrentPath,InStrRev(strCurrentPath, "\"))+"newbooklist.xml";
int k=strCurrentPath.LastIndexOf("\\");
string strXMLPath=strCurrentPath.Substring(0,k);
strXMLPath+="havetry.xml";
XmlTextWriter objXMLWriter=new XmlTextWriter(strXMLPath,System.Text.Encoding.UTF8);
objXMLWriter.Formatting=Formatting.Indented;
objXMLWriter.Indentation=3;
//
objXMLWriter.WriteStartDocument(true);
objXMLWriter.WriteComment("Created using an XML TextWriter****" + System.DateTime.Now);

//
objXMLWriter.WriteStartElement("BookList");
objXMLWriter.WriteStartElement("Book");

//add two attributes to this element's openning tag
objXMLWriter.WriteAttributeString("Category","Technology");
int intPageCount=1248;
objXMLWriter.WriteAttributeString("PageCount",intPageCount.ToString("G"));

//write four elements,using different source data types
objXMLWriter.WriteElementString("TiTle","Professional Video Recorder Programming");
//DateTime datReleaseDate=new DateTime();
//System.DateTime datReleaseDate=System.Convert.ToDateTime(04/09/2003);
objXMLWriter.WriteElementString("ReleaseDate","2003-04-09");
//objXMLWriter.WriteElementString("ReleaseDate",datReleaseDate.ToString("yyyy-MM-dd"));
int intSales=17492;
objXMLWriter.WriteElementString("Sales",intSales.ToString("G"));
bool blnHardback=true;
objXMLWriter.WriteElementString("Hardback",blnHardback.ToString());

//writer the openning tag for the <AuthorList> child element
objXMLWriter.WriteStartElement("AuthorList");

//add two <Author> elements
objXMLWriter.WriteElementString("Author","Francesca Unix");
objXMLWriter.WriteElementString("Author","Wiliam Soft");

//close the <AuthorList> element
objXMLWriter.WriteEndElement();

//close the <BOOK> element
objXMLWriter.WriteEndElement();

//close the root <BookList> element
objXMLWriter.WriteEndElement();

objXMLWriter.Flush();
objXMLWriter.Close();
}
liuyong_lll 2003-04-08
  • 打赏
  • 举报
回复
就是我出问题的那段代码呀!!
flyfish51f 2003-04-08
  • 打赏
  • 举报
回复
你想做什么转化啊,这么长的一段
liuyong_lll 2003-04-08
  • 打赏
  • 举报
回复
up也有分.............
liuyong_lll 2003-04-08
  • 打赏
  • 举报
回复
我是希望各位帮我把代码转换一下来着!
liuyong_lll 2003-04-08
  • 打赏
  • 举报
回复
我自己先顶一下吧!!
2002pine 2003-04-08
  • 打赏
  • 举报
回复
string strXMLPath=Left(strCurrentPath,InStrRev(strCurrentPath,"\"))+"newbooklist.xml";

可以用以下实现》

string a=@"ssss/aa";
int k=a.IndexOf("/");
a.Substring(0,k);
stingsg 2003-04-08
  • 打赏
  • 举报
回复
c# 中类似功能可以用 IndexOf 模拟,查 IndexOf 就知道了

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧