送分了,大家帮忙啊

chendjin 2004-08-21 05:35:56
问题1:
下面代码运行提示“实时错误:13 类型不匹配”,哪点出错,请指正!!!!
Dim cSplitStr(), cTim As String
cTim = "北京,上海,南京,昆明,贵州,重庆,四川,山东"
cSplitStr = Split(cTim, ",", -1, vbTextCompare)

问题2:
操作xx.ini文件,如果某关键字名的值(字符串)太长了,若换行处理,那么取值时,换行之后的
字符串没有被取出?怎么解决,请高手指点!!!在线等待(中间有一段时间离线就餐,晚上继续)
问题解决立即结帖。赶快呀.....
...全文
237 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
chendjin 2004-08-21
  • 打赏
  • 举报
回复
明天结帖,大家帮忙有分啊!!!本人有事离线了,晚安,各位。
rainstormmaster 2004-08-21
  • 打赏
  • 举报
回复
//我想分行处理以求美观,但用上述代码不能读换行后的字串,很郁闷,希望大家帮帮忙!

呵呵,分行用api肯定是读不出来的(想用api就不要分行),当成普通的文本文件处理吧
chendjin 2004-08-21
  • 打赏
  • 举报
回复
//看看你的ini文件
xx.ini:
[城市名]
ChinaCities=北京,上海,南京,昆明,贵州,重庆,成都,山东,...
'有40多个城市,我想分行处理以求美观,但用上述代码不能读换行后的字串,很郁闷,希望大家帮帮忙!

[其它]
chendjin 2004-08-21
  • 打赏
  • 举报
回复
xx.ini:
[城市名]
ChinaCities=北京,上海,南京,昆明,贵州,重庆,四川,山东,... '有40多个城市

[其它]
helanshan 2004-08-21
  • 打赏
  • 举报
回复
up
starsoulxp 2004-08-21
  • 打赏
  • 举报
回复
第一个问题:
Dim cSplitStr() as String , cTim As String
cTim = "北京,上海,南京,昆明,贵州,重庆,四川,山东"
cSplitStr = Split(cTim, ",")
你的写法:
Dim cSplitStr(), cTim As String

这么定义并不是把两个变量都定义成String类型,第一个是定义成变体类型。


rainstormmaster 2004-08-21
  • 打赏
  • 举报
回复
看看你的ini文件
iiboy 2004-08-21
  • 打赏
  • 举报
回复
Learning.....
zhangzhijian 2004-08-21
  • 打赏
  • 举报
回复
up
rockyc 2004-08-21
  • 打赏
  • 举报
回复
up
LichKingSZ 2004-08-21
  • 打赏
  • 举报
回复
我试了一下,的确是不能读换行后的字串,那不换行不行吗?你读到string里以后再换行
chendjin 2004-08-21
  • 打赏
  • 举报
回复
问题2:本人用api函数操作ini文件,代码如下:
Private Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" _
(ByVal lpBuffer As String, nSize As Long) As Long

Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" _
(ByVal lpBuffer As String, ByVal nSize As Long) As Long

Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" _
(ByVal lpApplicationName As String, _
ByVal lpKeyName As Any, _
ByVal lpDefault As String, _
ByVal lpReturnedString As String, _
ByVal nSize As Long, _
ByVal lpFileName As String) As Long

Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" _
(ByVal lpApplicationName As String, _
ByVal lpKeyName As Any, _
ByVal lpString As Any, _
ByVal lpFileName As String) As Long

'********************************************************************************
'** 函数功能:从ini配置文件中读取指定段名、关键字名的值
'** 调用语法: GetInIKeyValue(IniTitleName as string,KeyName As String,FileName As String)
'** 参数说明:
'** IniTitleName :段名
'** KeyName :关键字名
'** FileName :ini文件名包括路径
'** 返 回 值:
'** String :返回关键字之值->GetInIKeyValue
'** 处理说明:
'** 调用API函数GetPrivateProfileString
'******************************************************************************
Public Function GetInIKeyValue(ByVal IniTitleName As String, _
ByVal KeyName As String, _
ByVal FileName As String) As String
Dim KeyValue$
Dim strTmp As String

KeyValue$ = String$(512, " ")
GetPrivateProfileString IniTitleName, KeyName, "", KeyValue$, 512, FileName
strTmp = Trim(KeyValue$)
GetInIKeyValue = Left(strTmp, Len(strTmp) - 1)
End Function

'********************************************************************************
'** 函数功能:从ini配置文件中写入指定段名、关键字名及值
'** 调用语法: SetInIKeyValue(IniTitleName as string,KeyName As String,KeyValue as string ,FileName As String)
'** 参数说明:
'** IniTitleName :段名
'** KeyName :关键字名
'** KeyValue :关键字值
'** FileName :ini文件名包括路径
'** 返 回 值:
'** 处理说明:
'** 调用API函数WritePrivateProfileString
'******************************************************************************
Public Sub SetInIKeyValue(ByVal IniTitleName As String, _
ByVal KeyName As String, _
ByVal KeyValue As String, _
ByVal FileName As String)
Dim nSetSucess As Long

nSetSucess = WritePrivateProfileString(IniTitleName, KeyName, KeyValue, FileName)
End Sub
chendjin 2004-08-21
  • 打赏
  • 举报
回复
问题1:已解决,问题2呐,继续
LichKingSZ 2004-08-21
  • 打赏
  • 举报
回复
我的代码打错了:
Dim cSplitStr as variant
dim cTim As String
cTim = "北京,上海,南京,昆明,贵州,重庆,四川,山东"
cSplitStr = Split(cTim, ",")


iiboy 2004-08-21
  • 打赏
  • 举报
回复
up
flyingZFX 2004-08-21
  • 打赏
  • 举报
回复
不可能,你怎么读取的INI文件??

使用INI的方式存取文件参数
在d盘根目录新建 aaa.ini文件

模拟程序
'模块中
Option Explicit

'-------------------------
'声明
Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long
Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long

'获得设置
Public Function MyGetSetting(Section As String, KeyName As String, DefaultValue As String) As String

Dim X As Long
Dim Holder As String * 255

X = GetPrivateProfileString(Section, KeyName, DefaultValue, Holder, 254, "d:\aaa.ini")
MyGetSetting = Left$(Holder, InStr(Holder, Chr$(0)) - 1)

End Function

'保存设置
Public Sub MySetSetting(Section As String, KeyName As String, KeyValue As String)

Dim X As Long

X = WritePrivateProfileString(Section, KeyName, KeyValue, "d:\aaa.ini")

End Sub

'窗体中
Private Sub Command1_Click()
'保存变量
MySetSetting "服务器名", "服务器名", "sv"
MySetSetting "用户名", "用户名", "sa"
MySetSetting "密码", "密码", "aaaa"
MySetSetting "数据库名", "数据库名", "Mydatabase"
MsgBox "保存成功"
End Sub

Private Sub Command2_Click()
'取出变量
MsgBox MyGetSetting("服务器名", "服务器名", "")
MsgBox MyGetSetting("用户名", "用户名", "")
MsgBox MyGetSetting("密码", "密码", "")
MsgBox MyGetSetting("数据库名", "数据库名", "")
End Sub
BlueBeer 2004-08-21
  • 打赏
  • 举报
回复
Dim cSplitStr(), cTim As String
这样定义变量只是把cTim定义成了string类型,而cSplitStr()不是string,是变体
改成这样就行了
Dim cSplitStr()as string, cTim As String
flyingZFX 2004-08-21
  • 打赏
  • 举报
回复
Dim cSplitStr() as String , cTim As String
cTim = "北京,上海,南京,昆明,贵州,重庆,四川,山东"
cSplitStr = Split(cTim, ",")
踏平扶桑 2004-08-21
  • 打赏
  • 举报
回复
有时候连续定义几个变量也会出错,当你的程序没错误的时候把多个连续定义的变量分开定义有时候就会好了
LichKingSZ 2004-08-21
  • 打赏
  • 举报
回复
Dim cSplitStr as variable
dim cTim As String
cTim = "北京,上海,南京,昆明,贵州,重庆,四川,山东"
cSplitStr = Split(cTim, ",")

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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