CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

想得到下面程序的源代码,请高手帮忙!!!!!!!

楼主suntrip(善本)2004-05-02 10:42:54 在 VB / 基础类 提问

我现在正打算写一个INI文件,这个文件包括以下内容:(怎么写INI文件作为一张表)  
   
  计算机ID号,安装的地点,网络IP地址,安装的时间  
   
  [Item1]  
  ID=8883  
  Address=Beijing  
  NetIP=128.127.128.22  
  Time=04-27-2004  
   
  [Item2]  
  ID=8283  
  Address=Beijing  
  NetIP=128.127.128.23  
  Time=04-27-2004  
   
  ItemXX作为一条记录,  
  问题点数:0、回复次数:13Top

1 楼VBDN( PowerBASIC.CN )回复于 2004-05-02 10:48:15 得分 0

密切关注Top

2 楼cso(无聊中...)回复于 2004-05-02 11:44:08 得分 0

http://www.sijiqing.com/vbgood/experience/index.asp?action=read&id=3243Top

3 楼dongge2000(目前叫西西了)回复于 2004-05-02 12:37:31 得分 0

'vbCrLf  
   
  Public   Function   WriteTxt(ByVal   PathTxt   As   String,   ByVal   inText   As   String)   As   Boolean  
          On   Error   GoTo   tErr  
          Dim   f   As   Integer  
          f   =   FreeFile  
          Open   PathTxt   For   Binary   As   #f  
          Put   #f,   ,   inText  
          Close   #f  
          WriteTxt   =   True  
          Exit   Function  
  tErr:  
          WriteTxt   =   False  
           
  End   FunctionTop

4 楼KiteGirl(小仙妹)回复于 2004-05-05 21:15:21 得分 0

哈哈!这个问题其实好解决:  
   
  原数据:  
   
  [Item1]  
  ID=8883  
  Address=Beijing  
  NetIP=128.127.128.22  
  Time=04-27-2004  
   
  [Item2]  
  ID=8283  
  Address=Beijing  
  NetIP=128.127.128.23  
  Time=04-27-2004  
   
  1、将上述记录文本全部读入到一个String里面,假设叫做tString。关于如何将文本文件一次读入到一个String里面,如果你不了解可以另行开贴询问。假设我们有一个函数叫做TextGetByFile(),假设该函数可以将一个文本文件读入到一个字符传里。(该函数我手头就有)  
   
  Dim   tString   As   String  
  tString=TextGetByFile("Test.ini")  
   
  2、现在假设tString包含上述全部字符(包括换行)。我们从tString里获得每个Item。tItemStrs()是每段记录的文本。  
   
  Dim   tItemStrs()   As   String  
  tItemStrs()=Split(tString,"[Item")   '注意这一句的用法。  
   
  现在,我们得到了每个记录的文本。注意:tItemStrs(0)必定是无效的记录。  
  如果是tItemStrs(1),则内容会是:  
  1]  
  ID=8883  
  Address=Beijing  
  NetIP=128.127.128.22  
  Time=04-27-2004  
   
  接着,要从tItemStrs()的元素里获得ID、Address、NetIP、Time等信息。首先拆分tItemStrs每一行。假设tItemStr是tItemStrs()的一个元素。我们现在在另外一个函数里。  
  tItemStr_Lines()=Split(tItemStr,vbCrlf)  
   
  现在,tItemStr_Lines()数组的内容是:  
  0:1]  
  1:ID=8883  
  2:Address=Beijing  
  3:NetIP=128.127.128.22  
  4:Time=04-27-2004  
  5:  
   
  接着,对tItemStr_Lines()的每一个元素做下列操作,我们假设这是又一个函数。  
  tAttribs()=Split(tItemStr_Lines(i),"=")  
  tAttribs(0)是属性的名称,tAttribs(1)是属性的值。依次以IF解析就可以了。  
   
  如果你看不明白,我会尝试把这个程序写出来。Top

5 楼KiteGirl(小仙妹)回复于 2004-05-05 22:17:19 得分 0

测试代码:  
   
  Private   Sub   Command1_Click()  
      Dim   tInfos()   As   tpRecordInstallInfo  
      tInfos   =   RecordInstallInfos_GetByText(Text1.Text)  
      Text2.Text   =   RecordInstallInfos_PutToText(tInfos())  
  End   Sub  
   
  RecordInstallInfos_Cound函数:用来计算tpRecordInstallInfo数组的数量,如果是0则说明该数组为空,不可操作(如操作则出错)。  
   
  RecordInstallInfos_PutToText函数:将tpRecordInstallInfo数组输出到文本。  
   
  RecordInstallInfos_GetByText函数:从文本获得tpRecordInstallInfo数组。  
   
  以下是:INILoad.bas的内容(是一个公共模块)。  
   
  Type   tpRecordInstallInfo  
      riID   As   Long  
      riAddress   As   String  
      riIP(0   To   3)   As   Byte  
      riTime   As   Date  
  End   Type  
   
  Function   RecordInstallInfos_Cound(ByRef   pInfos()   As   tpRecordInstallInfo)   As   Long  
      Dim   tOutLong   As   Long  
       
      Err.Clear  
      On   Error   Resume   Next  
       
      tOutLong   =   UBound(pInfos)   +   1  
       
      RecordInstallInfos_Cound   =   tOutLong  
  End   Function  
   
  Function   RecordInstallInfos_PutToText(ByRef   pInfos()   As   tpRecordInstallInfo)   As   String  
      Dim   tOutString   As   String  
       
      Dim   tInfos_Length   As   Long  
       
      Dim   tIndex   As   Long  
       
      tInfos_Length   =   UBound(pInfos)  
       
      For   tIndex   =   0   To   tInfos_Length  
          tOutString   =   tOutString   &   "[Item"   &   CStr(tIndex)   &   "]"   &   vbCrLf   &   RecordInstallInfo_PutToText(pInfos(tIndex))   &   vbCrLf  
      Next  
       
      RecordInstallInfos_PutToText   =   tOutString  
  End   Function  
   
  Function   RecordInstallInfos_GetByText(ByVal   pText   As   String)   As   tpRecordInstallInfo()  
      Dim   tOutInfos()   As   tpRecordInstallInfo  
       
      Dim   tStrings()   As   String  
      Dim   tStrings_Length   As   Long  
       
      Dim   tIndex   As   Long  
       
      tStrings()   =   Split(pText,   "[Item")  
      tStrings_Length   =   UBound(tStrings)  
       
      If   tStrings_Length   >   1   Then  
          ReDim   tOutInfos(tStrings_Length   -   1)  
          For   tIndex   =   1   To   tStrings_Length  
              tOutInfos(tIndex   -   1)   =   RecordInstallInfo_GetByText(tStrings(tIndex))  
          Next  
      End   If  
       
      RecordInstallInfos_GetByText   =   tOutInfos()  
  End   Function  
   
  Function   RecordInstallInfo_GetByText(ByVal   pText   As   String)   As   tpRecordInstallInfo  
      Dim   tOutInfo   As   tpRecordInstallInfo  
       
      Dim   tStrings()   As   String  
      Dim   tStrings_Length   As   Long  
       
      Dim   tItemStrings()   As   String  
      Dim   tItem_Name   As   String  
      Dim   tItem_Value   As   String  
       
      Dim   tIPStrings()   As   String  
      Dim   tIP_Index   As   Long  
       
      Dim   tIndex   As   Long  
       
      tStrings()   =   Split(pText,   vbCrLf)  
      tStrings_Length   =   UBound(tStrings)  
       
      For   tIndex   =   0   To   tStrings_Length  
          tItemStrings()   =   Split(tStrings(tIndex),   "=")  
          If   UBound(tItemStrings)   =   1   Then  
              tItem_Name   =   UCase(tItemStrings(0))  
              tItem_Value   =   tItemStrings(1)  
          End   If  
          With   tOutInfo  
              If   tItem_Name   =   "ID"   Then  
                      .riID   =   CLng(tItem_Value)  
                  ElseIf   tItem_Name   =   "ADDRESS"   Then  
                      .riAddress   =   tItem_Value  
                  ElseIf   tItem_Name   =   "NETIP"   Then  
                      tIPStrings()   =   Split(tItem_Value,   ".")  
                      If   UBound(tIPStrings)   =   3   Then  
                          For   tIP_Index   =   0   To   3  
                              If   IsNumeric(tIPStrings(tIP_Index))   Then  
                                  .riIP(tIP_Index)   =   CByte(CLng(tIPStrings(tIP_Index))   Mod   256)  
                              End   If  
                          Next  
                      End   If  
                  ElseIf   tItem_Name   =   "TIME"   Then  
                      .riTime   =   CDate(tItem_Value)  
                  Else  
              End   If  
          End   With  
      Next  
       
      RecordInstallInfo_GetByText   =   tOutInfo  
  End   Function  
   
  Function   RecordInstallInfo_PutToText(ByRef   pInfo   As   tpRecordInstallInfo)   As   String  
      Dim   tOutString   As   String  
       
      Dim   tStrID   As   String  
      Dim   tStrAddress   As   String  
      Dim   tStrIP   As   String  
      Dim   tStrTime   As   String  
       
      With   pInfo  
          tStrID   =   "ID="   &   Format(.riID,   "0000")  
          tStrAddress   =   "Address="   &   .riAddress  
          tStrIP   =   "NetIP="   &   .riIP(0)   &   "."   &   .riIP(1)   &   "."   &   .riIP(2)   &   "."   &   .riIP(3)  
          tStrTime   =   "Time="   &   Format(.riTime,   "dd-mm-yyyy")  
      End   With  
       
      tOutString   =   tStrID   &   vbCrLf   &   tStrAddress   &   vbCrLf   &   tStrIP   &   vbCrLf   &   tStrTime  
       
      RecordInstallInfo_PutToText   =   tOutString  
  End   Function  
  Top

6 楼suntrip(善本)回复于 2004-05-07 12:21:08 得分 0

谢谢楼上的妹妹,我正在试,遇到不会的问题我还会问你,你不会繁我吧,交个朋友好吗啊?  
  我的qq:51106861,你的呢啊Top

7 楼ryuginka(一米八五的猪)回复于 2004-05-07 13:39:45 得分 0

upTop

8 楼kmzs(.:RNPA:.山水岿濛)回复于 2004-05-07 14:23:13 得分 0

晕了,又来了一个jjTop

9 楼suntrip(善本)回复于 2004-05-08 09:39:23 得分 0

麻烦各位写具体些好吗啊?小弟是新手,有很多地方都不是很懂,不过老板要求紧急所以来此求大家帮忙啊!!!!!!  
   
  谢谢谢谢!!!!!!!!!!Top

10 楼suntrip(善本)回复于 2004-05-09 11:16:24 得分 0

谢谢各位的帮助小弟已经搞定了,在此说声谢谢Top

11 楼broown(程序员吃鱼香肉丝是很合理的)回复于 2004-05-09 14:03:57 得分 0

把你的做法,也说说看!  
  markTop

12 楼ryuginka(一米八五的猪)回复于 2004-05-09 14:10:51 得分 0

upTop

13 楼suntrip(善本)回复于 2004-05-13 10:43:59 得分 0

小弟已经搞定了阿,谁想要代码说一声,如果人多的话我就铁出来啊要是人少的话就给我邮箱我发给你们,我怕小弟编得太差了阿Top

相关问题

  • 托盘程序源代码!!
  • 求ping程序的源代码。。。!
  • 求ping程序的源代码!
  • 求ping程序的源代码。。!
  • 谁要手机程序的源代码
  • 交换源程序源代码
  • 求Spread3.0打印程序源代码!!!!!
  • 求ADSL拨号程序源代码!
  • 求画图程序DrawTool的源代码!
  • 图形处理程序源代码

关键词

  • 函数
  • 文本
  • 文件
  • 内容
  • titemstr
  • recordinstallinfos
  • tprecordinstallinfo
  • tstrings
  • tindex
  • beijingnetip

得分解答快速导航

  • 帖主:suntrip

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo