Sono nuovo di VB. Voglio testare qualche vecchio codice VB, ma ho bisogno della possibilità di stampare sulla console per poter testare determinati valori impostati nel codice. Come stampare sulla console da VB?Come scrivere su una console di debug in VB6?
risposta
Utilizzare debug.print. Ma non c'è una console su un'applicazione VB6, che stamperà nella finestra di debug.
Questo non è qualcosa che il Vb6 può fare facilmente (sono sicuro che si possa fare, ma chiameresti API Win32 native e non vale la pena se lo stai usando solo per il debug)
La tua migliore scommessa (IMHO) è quella di scrivere quei valori in un file di registro.
In realtà può essere fatto abbastanza banalmente da VB6 usando l'FSO. Ovviamente si applica solo quando si * ha * una console, cosa che si fa raramente in un programma VB6, a meno che non si sia AllocConsole() o si esegua come un EXE ricollegato per il sottosistema della console. Ma sono d'accordo che non è lo strumento migliore per il debug. – Bob77
@Bob: Quindi, si presenta sotto la voce "Facile quando sai come" forse? :) –
Non c'è molto da fare. Vedi la risposta estranea che ho postato. – Bob77
Questa risposta non dovrebbe essere accettata perché Debug.Print è la soluzione ideale per il test IDE.
Tuttavia solo per mostrare come utilizzare l'I/O standard flussi facilmente in VB6:
Option Explicit
'
'Reference to Microsoft Scripting Runtime.
'
Public SIn As Scripting.TextStream
Public SOut As Scripting.TextStream
'--- Only required for testing in IDE or Windows Subsystem ===
Private Declare Function AllocConsole Lib "kernel32"() As Long
Private Declare Function GetConsoleTitle Lib "kernel32" _
Alias "GetConsoleTitleA" (_
ByVal lpConsoleTitle As String, _
ByVal nSize As Long) As Long
Private Declare Function FreeConsole Lib "kernel32"() As Long
Private Allocated As Boolean
Private Sub Setup()
Dim Title As String
Title = Space$(260)
If GetConsoleTitle(Title, 260) = 0 Then
AllocConsole
Allocated = True
End If
End Sub
Private Sub TearDown()
If Allocated Then
SOut.Write "Press enter to continue..."
SIn.ReadLine
FreeConsole
End If
End Sub
'--- End testing ---------------------------------------------
Private Sub Main()
Setup 'Omit for Console Subsystem.
With New Scripting.FileSystemObject
Set SIn = .GetStandardStream(StdIn)
Set SOut = .GetStandardStream(StdOut)
End With
SOut.WriteLine "Any output you want"
SOut.WriteLine "Goes here"
TearDown 'Omit for Console Subsystem.
End Sub
Nota che ben poco del codice si richiede per un programma vero e proprio Console in VB6. La maggior parte si tratta di allocare una finestra della console quando il programma non è in esecuzione nel sottosistema della console.
+1: bello. Quindi, proprio come ho detto allora, facile quando sai come :) –
Grazie. Questo è quello di cui avevo bisogno. – CodeBlue