VB 怎么加入空格 Dim a As String h = 4 a = String(h, "#") Print a 输出是####,我想输出这样的# # # #

VB 怎么加入空格 Dim a As String h = 4 a = String(h, "#") Print a 输出是####,我想输出这样的# # # #,第1张

String()函数本身没有这个功能,以下代码可实现你的要求:

Private Sub Command1_Click()

Dim a As String

h = 4

For i = 1 To h

  a = a + Mid(String(h, "#"), i, 1) + Space(1)

Next i

Print a

End Sub

以下程序实现:在文本框输入内容,按回车键(Enter键)后,文本框中的内容输出到列表框。

1)在窗体上布置一个TextBox控件和一个ListBox控件

2)代码

Option Explicit
Private Sub Form_Load()
    ' 窗体启动时,清空Text1和List1
    Text1Text = ""
    List1Clear
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
    ' 如果按下了回车键(回车键的Ascii码为13)
    If KeyAscii = 13 Then
        Dim s As String
        ' 取出Text1中输入的内容并滤除前后的空格
        s = Trim(Text1Text)
        
        If s <> "" Then
            ' 如果Text1中输入的内容不为空,则添加到List1中
            List1AddItem s
            ' 添加后,清空Text1
            Text1Text = ""
        End If
    End If
End Sub

3)运行效果

窗体启动时

在Text1中输入,按回车后,输入的内容在List1中显示

Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = vbKeyReturn Then
Dim Txt As String
For i = 1 To Len(Text1Text)
If Asc(Mid(Text1Text, i, 1)) >= 48 And Asc(Mid(Text1Text, i, 1)) <= 57 Then Txt = Txt & Mid(Text1Text, i, 1)
Next i
MsgBox Txt
End If
End Sub
另外:
If Asc(Mid(Text1Text, i, 1)) >= 48 And Asc(Mid(Text1Text, i, 1)) <= 57 Then Txt = Txt & Mid(Text1Text, i, 1) 还可以简化为:
If Mid(Text1Text, i, 1) Like "[0-9]" Then Txt = Txt & Mid(Text1Text, i, 1)

注:以下核心代码来自:>

废话不多说,三步最简实现VB6输出到控制台显示

第一步,定义API及全局变量等:

'添加模块,取名 DOSConsolebas ,写入以下代码

Option Explicit

'---------定义所需API

Public Declare Function FreeConsole Lib "kernel32" () As Long

Public Declare Function GetStdHandle Lib "kernel32" (ByVal nStdHandle As Long) As Long

Public Declare Function LstrLen Lib "kernel32" Alias "lstrlenA" (ByVal lpString As String) As Long

Public Declare Function WriteConsole Lib "kernel32" Alias "WriteConsoleA" (ByVal hConsoleOutput As Long, ByVal lpBuffer As Any, ByVal nNumberOfCharsToWrite As Long, lpNumberOfCharsWritten As Long, lpReserved As Any) As Long

'-------------常量定义

Public Const STD_OUTPUT_HANDLE = -11&

'-----------定义全局变量

Public hConsoleOut As Long ' The console's output handle

'---------定义函数

Public Sub Initialize() '---初始化获取句柄

  '获得控制窗口的句柄

  hConsoleOut = GetStdHandle(STD_OUTPUT_HANDLE)

End Sub

Public Sub Terminate() '-----销毁句柄

  FreeConsole ' Destroy the console

End Sub

Public Sub COut(szOut As String)   '------文字输出到控制台函数

  WriteConsole hConsoleOut, szOut, LstrLen(szOut), vbNull, vbNull

End Sub

第二步,使用方法:

'在 sub main() 或 Sub Form_Load() 内先 执行初始化函数:Initialize

'在 sub main() 尾部 或 Sub Form_QueryUnload 中执行销毁函数:Terminate

'在 sub main() 中部 或 Sub Command1_Click() 中执行输出函数:Call COut("VB6 控制台" & vbCrLf)

'示例1,无窗体模式:

Public Sub Main()

Call Initialize

'----------此处程序显示代码开始-------------

Call COut("VB6 控制台" & vbCrLf)

'----------程序代码到此结束-------------

Call Terminate

end

End Sub

'示例2,窗体模式:

Private Sub Form_Load()

Call Initialize

End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)

  Call Terminate

End Sub

Private Sub Command1_Click()

Call COut("VB6 控制台" & vbCrLf)

End Sub

'示例3,窗体混合模式:

'模块1:

Public Sub Main()

Call Initialize

Call COut("VB6 控制台" & vbCrLf)

  Load Form1

  Form1Show

End Sub

'窗体模块:

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)

  Call Terminate

End Sub

Private Sub Command1_Click()

Call COut("VB6 控制台" & vbCrLf)

End Sub

完成以上步骤后,执行是没有效果的,需要进行下面的第三步,这才是关键部分。

第三步,修改编译后的EXE:

以上代码编译后的exe文件还不能实现CMD控制台模式输出,需要对exe文件进行修改才行,有两种修改方法。

方法一,直接使用二进制编辑器或自己写另一个代码修改:

用二进制修改指定偏移量位置处的数字,注意以下所说文件起点偏移量为1,而大多数二进制编辑器起点计为0,使用时需要注意

P-代码 方式编译的exe其偏移量是 &H10D,编译为 本机代码 的偏移量是 &H115 , 将该位置的 02 改为 03 即可。

以 本机代码 方式编译的exe修改为例,还可用以下另一个代码进行修改:

新建一个VB工程,运行以下代码

Sub Main()

Open "{这里填写编译出的文件的路径}" For Binary As #1

Seek #1, &H115

Put #1, , CLng(3)

Close #1

End Sub

方法二,用VBS代码重新连接第二步编译好的exe文件:

方法来自: >

新建VBS文件(LinkConsolevbs),内容如下(保存关闭):

' LinkConsolevbs

' >

'

' This is a WSH script used to make it easier to edit

' a compiled VB6 EXE using LINKEXE to create a console

' mode program

'

' Drag the EXE's icon onto the icon for this file (or onto

' a shortcut to this file), or execute it from a command

' prompt as in:

'

'    LinkConsolevbs Project1exe

'

Option Explicit

Dim strLINK, strEXE, WSHShell

' Be sure to set up strLINK to match your VB6 installation

strLINK = """C:\Program Files\Microsoft Visual Studio\VB98\LINKEXE"""

strEXE = """" & WScriptArguments(0) & """"

Set WSHShell = CreateObject("WScriptShell")

WSHShellRun strLINK & " /EDIT /SUBSYSTEM:CONSOLE " & strEXE

Set WSHShell = Nothing

WScriptEcho "Complete!"

VBS使用方法:将第二步中编译好的exe文件按鼠标左键拖放到以上新建的 LinkConsolevbs 文件图标上,即会执行 LINKEXE 重编译exe为控制台模式,注意你自己的 VB6 的安装位置,以上 VBS 文件中为使用默认路径安装(C:\Program Files\Microsoft Visual Studio\VB98\)的。

至此,直接运行你用以上方法处理完成的 exe 文件就会出现控制台窗口,并显示设定内容:

也可以编写批处理文件,内容如:

VB6Consoleexe

pause

然后执行改批处理文件,即可在 CMD 窗口中实现输出设定内容:

后记:以上核心函数为 GetStdHandle 和 WriteConsole 这两个。

vb中阵列array如何转化成字串string 用str()函式,比如str(2)就是把整数型资料2转化成字元型别的“2”。要转化阵列,直接将括号里的内容改为阵列就可以了,比如定义的一维阵列m(5),那么就是str(m(x)),x=0,1,2……5
python如何将阵列转化成字串?

#阵列为list,使用join函式""join(list)

如何把数字阵列转化成字串阵列
var arr=[1,2,3,4] for(var i=0;i<arrlength;i++){ arr[i]+=""; } consolelog(arr) 输出为:["1","2","3","4"]
JAVA题 求助啊~~~将一个字串转化成阵列,阵列转化成字串
假设字串变数名叫str
strtoCharArray()就可以得到一个字元阵列了
阵列转换为字串的话
先定义个以个字串String str = “”
然后遍历阵列 将阵列中的元素一一加到str中就行了。。
如何用split将一个字串转化成字串阵列
应该是java的,假定是java语言
import javautilArrays;
public class Test {
static public void main(String 引数[]){
String s="1,2,3,";
String[] ss=ssplit(",");
Systemoutprintln(ArraystoString(ss));
}
}
=========
[1, 2, 3]
vb 如何将 字串阵列 转化为 字串
用join可以:
Private Sub Command1_Click()
Dim a() As String
a = Split(Text1, ",")
Text2 = Join(a, "")
End Sub
pascal中如何把数转化成字串
用str过程
str(x:integer,y:string);
x为要转化的数,y为要转化到的字串
如何将数字转化成字串
方法一:直接强制转换。如:String str= (String)123;
方法二:直接通过空字串+数字的形式转换为字串(前后都可以用)。如:String str= ""+123;
方法三:直接通过包装类来实现。如:String str = StringvalueOf(1231);
java怎么把数字转化成字串阵列

int m = 324324; String str = m+""; String[] strs = strsplit(""); String[] arr = ArrayscopyOfRange(strs, 1, strslength); for (int i = 0; i < arrlength; i++) { Systemoutprintln(arr[i]); }


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12968088.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-29
下一篇 2023-05-29

发表评论

登录后才能评论

评论列表(0条)

保存